2015-10-14 51 views
2

我使用Qt Creator 3.4.2 for Windows和MSVC2013编译器。当我建立的项目,我得到一个错误:如何在Qt Creator的项目文件(.pro)中修改PATH变量

LNK1158: cannot run 'rc.exe' 

我设法

Projects -> Build Environment 

下加入

"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin" 

到PATH变量来解决它,但我需要修改PATH通过编辑.pro文件变量。这样可以更容易地在另一台计算机上打开和构建我的项目,因为所有路径都将存储在.pro文件中。此解决方案不起作用:

PATH += "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin" 

是否有可能?

+0

也许你已经意识到了这一点,但是如果你与项目中的其他人一起工作,这不是一个好主意,因为他们的SDK可能位于不同的位置。 – Mitch

+0

当然,.pro文件中的硬编码SDK路径不是最好的解决方案。但在我的情况下,如果SDK版本相同,则不同机器上的路径将相同。另外,在.pro文件中修改它们(仅复制和粘贴)比在Project - > Build Environment中为每个构建配置逐个手动更改它们要容易得多。 – lvds

回答

1

奇怪的是,你有这样的错误,因为Qt Creator应该检测MSVC编译器并在适当的环境下构建项目。 Qt Creator的知道它应该运行所需的批处理文件来准备VS命令提示符控制台的环境中,例如C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat x86


无论如何,这是可能的编写创建运行任何自定义外壳的Makefile qmake项目文件(.pro)命令在实际项目编译之前。 当qmake处理.pro文件时,它仅创建Makefiles。然后编译由其他make构建工具完成。 Qt Creator使用它的jom make实用程序。从VS控制台可以运行nmake

Make实用程序根据Makefiles规则中的指定运行不同的工具。使用build命令可以创建额外的假目标,并设置变量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 

所以,在加工过程中MAKEFILES第一目标dummy。其“构建”命令设置为PATH。然后所有其他工具在该环境中运行。

+0

太棒了!谢谢。 – lvds

相关问题