Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 静态编译会破坏ABI吗?_C++_Regex_Boost_Backwards Compatibility_Abi - Fatal编程技术网

C++ 静态编译会破坏ABI吗?

C++ 静态编译会破坏ABI吗?,c++,regex,boost,backwards-compatibility,abi,C++,Regex,Boost,Backwards Compatibility,Abi,我想提供一个库来做一些正则表达式的事情,因为gcc和clang(如果我错了请纠正我)现在都实现了它,所以我将使用boost来实现这一点。 但是boost不时会破坏其ABI,所以我的问题是: 使用boost的静态编译版本编译我的库是否安全,这样将来的boost版本中就不会出现ABI中断?如果使用boost进行静态编译,将来的版本就不会有任何ABI问题,因为没有所谓的“外部”,显然,如果没有重新编译,您也不会使用将来版本中的任何内容 多年来,我一直与boost静态链接,主要是为了更容易部署,没有任何

我想提供一个库来做一些正则表达式的事情,因为gcc和clang(如果我错了请纠正我)现在都实现了它,所以我将使用boost来实现这一点。 但是boost不时会破坏其ABI,所以我的问题是:


使用boost的静态编译版本编译我的库是否安全,这样将来的boost版本中就不会出现ABI中断?

如果使用boost进行静态编译,将来的版本就不会有任何ABI问题,因为没有所谓的“外部”,显然,如果没有重新编译,您也不会使用将来版本中的任何内容


多年来,我一直与boost静态链接,主要是为了更容易部署,没有任何问题。

C++现在确实有。@JoachimPileborg没有在gcc中实现(如果你想学究的话,可以使用libstdc++)。如果你不能使用C++11,也会有系统调用
regcomp
regexec
etc由
grep
egrep
使用。没有Boost强大,但可能足够好,应该是稳定的。@JoachimPileborg我知道c++11提供了一个regex头,但libstdc++还没有实现它。这取决于您使用的GCC版本。其中一些存在于4.6版中,4.7版相当不错,4.8版当然是最好的。嗯,对我来说这听起来很合法,我也这么认为。但既然没有其他人能证明你的答案,我就不会接受。