Я пытаюсь статически связать стандартную библиотеку libc ++ (https://libcxx.llvm.org/) в Linux (Arch использует эту AUR https://aur.archlinux.org/packages/libc%2B%2B/), используя Clang.
Я получаю ошибку /usr/bin/ld: cannot find -lc++
Ошибка не зависит от кода, она появляется даже в «Hello World».
Если я удаляю опцию -static
, она компилируется (и связывается), и сгенерированный исполняемый файл работает.
Я не хочу использовать libstdc ++ (у меня есть причины не фокусироваться на этом обсуждении), и ссылки должны быть статичными (это требование).
Я прекрасно осведомленчто это сложно отладить, не имея доступа к машине, где это происходит. Однако бывает, что это две разные машины (обе с Arch), поэтому, может быть, я об этом забываю.
Что я пробовалпока здесь объясняется (https://releases.llvm.org/7.0.0/projects/libcxx/docs/UsingLibcxx.html)
Основная команда, которая должна работать, это следующая clang++ -static -stdlib=libc++ -std=c++17 main.cpp -lc++abi