Visual c++ 如何检查Visual C++;使用特定平台工具集时的编译器版本? 我安装了微软Visual C++的多个版本(2005, 2008, 2012,2013)。 我正在将我的项目从VC++2008移至2013年

Visual c++ 如何检查Visual C++;使用特定平台工具集时的编译器版本? 我安装了微软Visual C++的多个版本(2005, 2008, 2012,2013)。 我正在将我的项目从VC++2008移至2013年,visual-c++,boost,visual-studio-2013,Visual C++,Boost,Visual Studio 2013,我将“平台工具集”设置为“Visual Studio 2013(v120)”。 我将“附加库目录”设置为“C:\local\boost\u 1\u 55\u 0\lib32-msvc-12.0”(其中安装了新版本的boost) 到目前为止,我没有办法检查代码是否已使用编译器的版本12(2013)编译。我将“禁止启动横幅”设置为“否”。我得到的唯一详细信息是: ..\src.cpp(371): warning C4996: 'gmtime': This function or variab

我将“平台工具集”设置为“Visual Studio 2013(v120)”。
我将“附加库目录”设置为“C:\local\boost\u 1\u 55\u 0\lib32-msvc-12.0”(其中安装了新版本的boost)

到目前为止,我没有办法检查代码是否已使用编译器的版本12(2013)编译。我将“禁止启动横幅”设置为“否”。我得到的唯一详细信息是:

    ..\src.cpp(371): warning C4996: 'gmtime': This function or variable may be unsafe. Consider using gmtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
    1>          c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\include\time.inl(101) : see declaration of 'gmtime'
...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
...
1>boostlibs.lib(archive_exception.obj) : warning LNK4099: PDB 'vc90.pdb' was not found with '..\..\lib\debug\boostlibs.lib' or at 'C:\Users\me\prj\Debug\vc90.pdb'; linking object as if no debug info
这些行似乎表明使用了编译器的版本9

是这样吗

如何设置不同的编译器?我如何检查它是否真的被使用过

如何强制编译器和链接器使用特定版本的Boost?我已经在“附加包含目录”和“附加库目录”中指定了它的路径

我如何检查它是否真的被使用过

您可以在源文件中检查:

(可能使用
BOOST\u STATIC\u ASSERT(…)

\u MSC\u FULL\u VER
——计算主版本号、次版本号和内部版本号 编译器版本号的组件。主要数字是 以句点分隔的版本号的第一个组件,次版本号 编号是第二个组件,构建编号是第三个组件 组成部分。例如,如果VisualC++的版本号 编译器为15.00.20706.01,_MSC_FULL_VER宏的计算结果为 150020706类型cl/?在命令行中查看编译器的版本号

\u MSC\u VER
——计算的主要和次要数量组件 编译器的版本号。主编号是第一个组件 以句点分隔的版本号和次版本号的 第二部分

例如,VisualC++编译器的版本号是 17.00.51106.1,宏的计算结果为1700


这些行似乎表明使用了编译器的版本9

。。。他们可能--另一方面,可能(我推测-我没有多VS机器来检查)项目转换搞砸了,您的VS2013项目现在包含对所有VC9内容的显式“引用”(
vc90.pdb
显式设置,包括VS2008的路径,而不是正确的VS2013路径)

确保检查项目设置


如何强制编译器和链接器使用特定版本的Boost

粗略地说,您使用的Boost版本取决于include路径的顺序。应该使用include路径上找到的第一个Boost版本


由于Boost头包含链接器pragma,因此不需要为Boost
lib
文件显式设置任何链接器输入。当然,正确的LIB文件需要在链接路径上执行。

< P>在Visual C++图形用户界面无法将编译器设置为新的12版本之后,我手动修改了*VCXPROJ文件,用“12”替换所有的“9”令牌。p> 它现在使用正确的编译器