Qt,qmake,pro文件:将编译器名称添加到目标名称中



我想在.pro文件中向目标添加Qt版本和编译器版本,如下所示:

msvc=$$basename(QMAKESPEC)
TARGET = Appname_Qt$${QT_VERSION}_$$msvc
message($$msvc)
message($$TARGET)

结果(消息输出)是:

Project MESSAGE: win32-msvc2008
Project MESSAGE: Appname_Qt4.7.1_win32-msvc2008

但是目标输出(文件名)是:

Appname_Qt4.7.1_

缺少编译器名称(版本)。我该怎么解决这个问题
非常感谢!

//----更新---------我尝试过:

msvc=$$basename(QMAKESPEC)
msvcx=abcd
TARGET = Appname_Qt$${QT_VERSION}_$$msvcx
message($$msvc)
message($$TARGET)

目标输出(文件名)为:

Appname_Qt4.7.1_abcd

(正确)

您不能这样做:当qmake运行时,编译器和Qt版本已经修复:它们是用于构建有问题的qmake的。

编译器和Qt版本是在构建Qt时确定的。您可以通过运行正确的qmake可执行文件来选择要使用的Qt版本/编译器组合。

假设您安装了VS 2012和VS 2015,以及Qt 4.8和5.5,组合如下:

  1. VS2012+第4.8季度
  2. VS2012+第5.5季度
  3. VS2015+第5.5季度

在每个构建中都会有一个qmake.exe。它们中的每一个都将生成一个使用正确编译器和Qt版本的makefile。此外,必须在给定编译器配置为位于路径中的环境中启动qmake:必须先运行vcvars,然后再运行qmake。Qt Creator每次在启动qmakenmake/jom之前都会自动为您运行vcvars

最新更新