我尝试使用Clang静态链接Linux中的标准库libc++ (https://libcxx.llvm.org/) (使用这个AUR https://aur.archlinux.org/packages/libc%2B%2B/的Arch)。
我得到错误/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
发布于 2018-12-14 19:07:50
这是因为您的系统上没有安装静态libc++ (即libc++.a)。Archlinux默认不安装静态库5 years ago,因此执行完全静态链接对您来说将是一个挑战。您必须递归地为所有依赖库创建自己的静态构建。
https://stackoverflow.com/questions/53777680
复制相似问题