单个函数调用的Cxx11 ABI?

时间:2015-06-19 14:37:29

标签: c++11 preprocessor compatibility abi gcc5

是否可以定义一段要用Cxx11编译的代码,但其余的是使用libstdc ++ 6的兼容性ABI?

示例:

// Compatibility ABI
int myvar = 0;
std::string mystring = "hello";

// This method is from another library
// that has been compiled with Cxx11
call_routine_ext_library(mystring);

// Compatibility ABI
myvar += 2;

我的整个系统是在兼容模式下编译的,除了一个用Cxx11编译的外部库。 是否存在一个预处理器,允许您使用新的ABI手动选择要编译的代码的某些部分,就像在编译器行上定义D_GLIBCXX_USE_CXX11_ABI = 1一样?

调用方法 call_routine_ext_library 时得到的错误是:

undefined reference to `call_routine_ext_library(std::string const&)'

因为该库包含:

call_routine_ext_library(std::__cxx11::basic_string<char, std::char_traits<char>)

所以我希望在编译传递给该方法的字符串时,我可以强制编译器使用Cxx11模式。 在没有它的情况下编译代码时,是否有任何方法可以链接到用Cxx11编译的二进制文件?

0 个答案:

没有答案