我正在尝试编译我的项目Arch Linux x64 using libc++, libc++abi and 铿锵++ 3.6.0.
项目编译正确,但无法链接并出现以下错误:
错误:CMakeFiles/main.cpp.o:对符号“__cxa_thread_atexit@@CXXABI_1.3.7”的未定义引用
/usr/lib/libstdc++.so.6:-1: 错误:添加符号时出错:命令行中缺少 DSO
我正在使用以下命令进行编译和链接-stdlib=libc++ -lc++abi
flags.
我应该链接任何其他库吗?我缺少一面旗帜吗?
要么链接到-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。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)