我们收到了一些为linux编译的库(.a)(可能是用GCC 6.x编译的).
我们正在使用GCC 4.8,我们得到了类型的错误:
undefined reference to std::__cxx11::basic_string尝试链接时.
通常,这可以通过确保所有单元都使用相同的_GLIBCXX_USE_CXX11_ABI标志进行编译来修复.但是,如果我理解正确,这是由GCC 5.1引入的.
_GLIBCXX_USE_CXX11_ABI?谢谢!
在GCC文档中,我找到了该-fuse-cxa-atexit选项,并说明了以下内容:
完全符合标准的静态析构函数处理需要此选项
那两者有什么区别?在__cxa_atexit我的文档中我发现了以下内容:
__cxa_atexit()函数用于实现atexit()
我正在函数中实现静态(不要问为什么),我想知道用于调用析构函数的2中的哪一个.
我想我只有atexit()MSVC?那是问题吗?
我可以atexit()在任何地方使用并确保它的行为就像函数中的真实静态对象一样吗?