gpt4 book ai didi

c++ - Clang 3.1 + libc++ 编译错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:30:59 25 4
gpt4 key购买 nike

我已经在 Ubuntu 12.04 上使用 GCC-4.6 成功地构建并安装了(在前缀 ~/alt 下)LLVM-Clang 主干(2012 年 4 月 23 日),然后使用这个 Clang-build 成功地安装了 libc++ .当我想使用它时,我必须提供 -lc++-libstdc++ 如下

/home/per/alt/bin/clang -x c++ -I/home/per/alt/include/v1 -L/home/per/alt/lib -std=gnu++0x -g -Wall ~/f.cpp -lm -lc++ -lstdc++ -lpthread -o f

编译f.cpp包含

#include <iostream>

using std::cout;
using std::endl;

int main(int argc, const char * argv[]) {
cout << "sxx" << endl;
return 0;
}

如果我省略 -lstdc++ 我会得到链接错误

/home/per/alt/include/v1/ostream:989: error: undefined reference to '__cxa_begin_catch'
/home/per/alt/include/v1/ostream:993: error: undefined reference to '__cxa_end_catch'
/home/per/alt/include/v1/ostream:993: error: undefined reference to '__cxa_end_catch'
/tmp/f-4l9mgl.o(.eh_frame+0xd3): error: undefined reference to '__gxx_personality_v0'
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Compilation exited abnormally with code 1 at Tue Apr 24 13:59:22

难道 libc++ 不应该完全替代 libstdc++ 吗?

最佳答案

libcxx 不附带 ABI 层...这就是 libcxxabi 存在的原因。

理论上您应该能够链接到 libcxxabi。

在实践中你可能想链接到 libsupc++ 或 libcxxrt

最近在新闻组上有一些讨论,恐怕解决方案复杂且不断变化: http://thread.gmane.org/gmane.comp.compilers.clang.devel/19782

关于c++ - Clang 3.1 + libc++ 编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10297291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com