【发布时间】:2018-12-14 10:16:32
【问题描述】:
我尝试使用 Clang 静态链接 Linux 中的标准库 libc++ (https://libcxx.llvm.org/)(Arch 使用此 AUR https://aur.archlinux.org/packages/libc%2B%2B/)。
我收到错误/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
【问题讨论】:
-
错误是
cannot find -lc++。链接器正在寻找文件libc++.a。你的系统上有这样的文件吗?
标签: c++ linux c++11 clang++ libc++