我使用Qt Creator 3.4.2 for Windows和MSVC2013编译器。当我构建项目时,我收到一个错误:
LNK1158: cannot run 'rc.exe'
我设法通过添加
来修复它"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin"
到
下的PATH变量Projects -> Build Environment
但是我需要通过编辑.pro文件来修改PATH变量。这样可以更轻松地在另一台计算机上打开和构建我的项目,因为所有路径都将存储在.pro文件中。此解决方案不起作用:
PATH += "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin"
有可能吗?
答案 0 :(得分:2)
奇怪的是你有这样的错误,因为Qt Creator应该检测MSVC编译器并在适当的环境中构建项目。 Qt Creator知道它应该运行所需的批处理文件来准备VS命令提示符控制台的环境,例如C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat x86
无论如何,可以编写qmake
项目文件(.pro
)来创建在实际项目编译之前运行任何自定义shell命令的Makefile。
当qmake
处理.pro
文件时,它只会创建Makefile。然后编译由其他make构建工具完成。 Qt Creator使用其jom
make实用程序。从VS控制台可以运行nmake
。
Make实用程序根据Makefile规则中的指定运行不同的工具。可以使用设置PATH
变量的构建命令创建额外的伪目标。主要目标应取决于此目标。
.pro
文件中的以下行创建了这样的规则:
QMAKE_EXTRA_TARGETS += customtarget1
customtarget1.target = dummy
customtarget1.commands = set PATH=C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin;$(PATH)
PRE_TARGETDEPS += dummy
因此,在处理Makefile期间,第一个目标是dummy
。它的“构建”命令设置PATH
。然后所有其他工具都在该环境中运行。