在linux上使用“libc++”进行编译时,未定义对“__cxa_wthread_atexit@@CXXABI”的引用
Undefined reference to `__cxa_thread_atexit@@CXXABI` when compiling with `libc++` on linux
我正试图使用libc++、libc++abi和clang++3.6.0在Arch Linux x64上编译我的项目。
项目编译正确,但未能链接到以下错误:
错误:CMakeFiles/main.cpp.o:未定义对符号'__cxa_wthread_atexit@@CXXABI_1.3.7'的引用
/usr/lib/libstdc++.so.6:-1:错误:添加符号时出错:命令行中缺少DSO
我正在使用-stdlib=libc++ -lc++abi
标志进行编译和链接。
有没有其他我应该链接的库?我是不是错过了一面旗帜?
与-lsupc++
链接或提供一个小包装函数(可能是libc++
的更好方法)用于glibc实现:
extern "C" int __cxa_thread_atexit(void (*func)(), void *obj,
void *dso_symbol) {
int __cxa_thread_atexit_impl(void (*)(), void *, void *);
return __cxa_thread_atexit_impl(func, obj, dso_symbol);
}
值得一提的是,这只适用于glibc>=2.18。
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中