【发布时间】:2016-01-29 04:03:09
【问题描述】:
如何判断某个 c++ 库是否使用 c++11标准?
【问题讨论】:
-
我问是因为在构建 mongodb C++ 旧版驱动程序时,必须确保现有的 boost 是使用与 mongodb 驱动程序相同的 C++ 标准构建的 - 即 C++11
-
那么,您想知道编译器版本是用什么编译器版本构建的二进制文件??
-
我不知道如何得到你想要的,但是有一种方法可以找到编译器的版本。 (stackoverflow.com/questions/2387040/…)。您可以创建所需的最低编译器版本列表,然后实现这一目标。但同样,如果在编译时使用了 -std=c++11,目前还没有得到答复。
-
不是 g++ 4.4 还是 g++ 4 中的编译器版本,而是使用 C++11 的标志完成的编译。
-
“必须确保现有的 boost 是使用相同的 C++ 标准构建的” - 不一定……ABI 中没有标准规定的中断,所以它仅取决于您使用的特定版本的编译器 - 使用您指定的任何标志 - 是否有中断。如果我是你,我会尝试一下,看看它是否有效。我当然链接了使用和不使用 -std=c++11 编译的混合对象 - 但都使用相同的编译器版本 - 针对 boost 并且没有发现任何问题。
标签: c++ c++11 shared-libraries