Qt .pro文件:如何检查我是否正在使用MSVC 2013工具集进行编译?

时间:2014-04-30 07:05:42

标签: qt qmake

我已经尝试过这种情况,但它不起作用。如何查看MSVC 2013?

win32-msvc2013*{
    QMAKE_CXXFLAGS += /FS
}

我正在使用具有msvc-2013 mkspec的Qt 5.3 Beta。

5 个答案:

答案 0 :(得分:13)

对于necroposting很抱歉,但似乎没有googleable解决方案。好像我找到了一个。有vcvars.bat文件,用于为VC设置正确的环境变量。例如,QtCreator在设置工具时使用它 - >选项 - >建设与发展运行 - >编译器。它也用于MSVC Command Promt。让我们在qmake中查看“VisualStudioVersion”env var(在我的情况下,MSVS 2015为14.0):

win32-msvc* {
    MSVC_VER = $$(VisualStudioVersion)
    equals(MSVC_VER, 14.0){
        message("msvc 2015")
    }
}

答案 1 :(得分:6)

尝试这种方式:

win32-msvc* {
    system(cl|grep "Compiler Version 18.") {
        message( "msvc 2013 detected" )
        QMAKE_CXXFLAGS += /FS
    }
}

http://qt-project.org/doc/qt-4.8/qmake-function-reference.html

无法测试我现在没有Windows机器。

答案 2 :(得分:4)

我使用以下内容:

contains(QMAKE_COMPILER_DEFINES, _MSC_VER=1800) { 
# MSVS2013
}

答案 3 :(得分:0)

找到了简单而优雅的解决方案:

win32-msvc*: {
    COMPIL = $$find(CONFIG, "^win32-msvc*")
    COMPIL = $$replace(COMPIL,win32-,) # 'win32-msvc2017' -> 'msvc2017'
}

编辑:这仅适用于 Qt 5.9.0 及更高版本。只有这样才能配置win32-msvc2012 / win32-msvc2013 /等。合并为单win32-msvc

答案 4 :(得分:-1)

检查supported platforms和参考配置表。没有msvc2013! 最新支持的视觉工作室是2012年。

因此,当检测visual studio时,不强制执行2013 sufix。 只需使用显示here

的方法即可