为Qt应用程序编写特定于Windows的.pri文件

时间:2015-11-13 16:21:11

标签: qt qmake

我正在尝试在Windows 8.1上构建Qt 5.5应用程序。我想在Ubuntu 14.04和MacOS 10.10.2上构建相同的应用程序。

这就是.pri文件现在的样子:http://pastebin.com/USHBXAni。 它有unix和mac支持。我也尝试添加Windows支持,但它无法正常工作。它看起来像这样:

win32 {

INCLUDEPATH += $$PWD \
   C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/include/boost-1_57 \
   C:/opencv/build/include

LIBS += -L/C:/opencv/build/x86/vc12/lib \
   -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_features2d -lopencv_ml \
   -lboost_thread-mt -lboost_system-mt

LIBS += -L/C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/lib \
   -lboost_thread-mt -lboost_system-mt

}

我对此非常陌生,我确信它在语法上是不正确的,但应该与此类似。任何人都可以给我一些提示或帮助将不胜感激!

什么是$$ PWD和-L例如?

运行make后的错误:

  

cd tests \ test_galif \&& (如果不存在Makefile   C:\ Qt \ Qt5.5.1 \ 5.5 \ msvc2013 \ bin \ q make.exe   C:\ Users \用户协和\文件\ OpenSSE \ opensse主\测试\ test_galif \ TE   st_galif.pro -o Makefile)&& make -f Makefile make [1]:输入   目录C:/Users/Concordia/Documents/OpenSSE/opensse-master /tests/test_galif' make -f Makefile.Release make[2]: Entering directory C:/ Users / Concordia / Documents / OpenSSE / opensse-master   /测试/ test_galif' Makefile.Release:106: *缺少分隔符。停止。   make [2]:离开目录   C:/Users/Concordia/Documents/OpenSSE/opensse-master/ tests/test_galif' make[1]: *** [release] Error 2 make[1]: Leaving directory C:/用户/协和/文档/ OpenSSE / opensse主/   测试/ test_galif' make:* [sub-tests-test_galif-make_first]错误2

1 个答案:

答案 0 :(得分:1)

cmd Windows控制台中,找不到工具make

  

'make'未被识别为内部或外部命令,可操作   程序或批处理文件。

如果发现make,它来自一些外国装置(可能来自Cygwin)。来自qmake的{​​{1}} Qt安装默认情况下应为Visual Studio msvc2013生成Makefile。

从控制台构建应该从具有适当构建环境(nmake变量)的适当命令提示符启动。对于32位编译,它应该是%PATH%命令提示符:

x86

从该控制台可以运行Programs->Visual Studio 2013->Visual Studio Tools->VS2013 x86 Native Tools Command Prompt 和适当的编译器。

它应该有助于Makefile错误。可能存在一些其他编译器或链接器错误,但只有正确的构建环境才会通过合适的make工具显示它们。

通常,如果由于某些行上的Makefile格式(例如nmake)而报告了某些错误,则可能需要检查该行中出现错误的原因。

必须引用带空格的标题路径才能正确编译:

Makefile.Release:106

链接器的库路径可以由INCLUDEPATH += "C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/include/boost-1_57" 后跟路径设置。必须引用带空格的路径才能正确连接:

-L

为了完整性,请注意使用较旧的Qt版本QMAKE adding extra quotations in lib path of make file可能会出现其他包含空格路径的问题 但是,Qt5.5.1不受该问题的影响。