- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试使用 libc++、libc++abi 和 clang++ 3.6 在 Arch Linux x64 上编译我的项目。 0。
项目编译正确,但无法链接并出现以下错误:
error: CMakeFiles/main.cpp.o: undefined reference to symbol '__cxa_thread_atexit@@CXXABI_1.3.7'
/usr/lib/libstdc++.so.6:-1: error: error adding symbols: DSO missing from command line
我正在使用 -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++ - 在 Linux 上使用 `__cxa_thread_atexit@@CXXABI` 编译时未定义对 `libc++` 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29322666/
我想在调用 dlopen() 之前确定我正在加载一个兼容的二进制文件。我想在加载库之前确定 cxxabi 级别。 最佳答案 您可以在打开二进制文件之前扫描二进制文件使用的符号列表。我不确定如何在程序中
我想为在 Linaro 14.04 上运行的 ARM 目标交叉编译一个软件。 当我使用 arm-linux-gnueabihf-g++ 从我的 Ubuntu 18.04 交叉编译,并尝试在目标上运行它
我已经安装了bsoft当我想运行一些需要 libstdc++.so.6 的函数时遇到问题。 bimg: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.9
我正在尝试使用 libc++、libc++abi 和 clang++ 3.6 在 Arch Linux x64 上编译我的项目。 0。 项目编译正确,但无法链接并出现以下错误: error: CMak
我使用的是 Fedora 27,我的笔记本电脑支持混合显卡 $ lspci -vnn | grep '\''[030[02]\]' 00:02.0 VGA compatible controller
我是一名优秀的程序员,十分优秀!