在linux上使用`libc`编译时未定义引用`__cxa_thread_atexit @@ C
发布时间:2020-12-14 01:07:02 所属栏目:Linux 来源:网络整理
导读:我正在尝试使用libc,libc abi和clang 3.6.0在Arch Linux x64上编译我的项目. 项目编译正确,但无法链接以下错误: error: CMakeFiles/main.cpp.o: undefined reference to symbol ‘__cxa_thread_atexit@@CXXABI_1.3.7’ /usr/lib/libstdc++.so.6:-1: error:
我正在尝试使用libc,libc abi和clang 3.6.0在Arch
Linux x64上编译我的项目.
项目编译正确,但无法链接以下错误:
我正在使用-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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容