为Qt应用程序编写特定于windows的.pri文件
我正在尝试在Windows8.1上构建Qt5.5应用程序。我设法在Ubuntu 14.04和MacOS 10.10.2上构建了相同的应用程序 以下是.pri文件现在的样子:。 它同时支持unix和mac。我也尝试添加windows支持,但不起作用。看起来是这样的:为Qt应用程序编写特定于windows的.pri文件,qt,qmake,Qt,Qmake,我正在尝试在Windows8.1上构建Qt5.5应用程序。我设法在Ubuntu 14.04和MacOS 10.10.2上构建了相同的应用程序 以下是.pri文件现在的样子:。 它同时支持unix和mac。我也尝试添加windows支持,但不起作用。看起来是这样的: win32 { INCLUDEPATH += $$PWD \ C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/include/boost-1_57 \ C:/opencv/
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\Concordia\Documents\OpenSSE\OpenSSE master\tests\test\u 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]:输入
目录
C:/Users/Concordia/Documents/OpenSSE/OpenSSE master
/tests/test_galif'Makefile.Release:106:*缺少分隔符。停止
make[2]:离开目录
C:/Users/Concordia/Documents/OpenSSE/OpenSSE-master/
测试/测试生成[1]:***[release]错误2生成[1]:离开
目录
C:/Users/Concordia/Documents/OpenSSE/OpenSSE master/
测试/测试加利夫品牌:[子测试-测试加利夫-品牌第一]错误2
在
cmd
Windows控制台中,不应找到工具make
:
“make”不被识别为内部或外部命令,可操作
程序或批处理文件
如果发现make
,它来自某个国外安装(可能来自Cygwin)qmake
frommsvc2013
Qt安装默认情况下应为Visual Studionmake
生成Makefiles
应从具有适当生成环境的适当命令提示符(%PATH%
变量)启动从控制台生成。对于32位编译,它应该是x86
命令提示符:
Programs->Visual Studio 2013->Visual Studio Tools->VS2013 x86 Native Tools Command Prompt
从该控制台应该可以运行nmake
和相应的编译器
它应该有助于解决Makefile错误。可能还有其他编译器或链接器错误,但只有在正确的构建环境下,才能通过适当的make工具来显示它们
通常,如果由于某行上的Makefile格式(例如
Makefile.Release:106
)而报告了某些错误,则可能需要检查该行中出现错误的原因
要正确编译,必须引用带有空格的标题路径:
INCLUDEPATH += "C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/include/boost-1_57"
链接器的库路径可以通过
-L
后跟路径来设置。必须引用带空格的路径,以便正确链接:
LIBS += -L"C:/Program Files (x86)/PCL 1.7.2/3rdParty/Boost/lib"
为了完整性,请注意,使用较旧Qt版本的带有空格的路径可能存在其他问题
但是,Qt5.5.1不受该问题的影响。您的错误是什么?什么是Qt版本<代码>$$PWD指向项目目录
-L
用于链接器库路径(不带斜杠-LC:/…
或,还引用了-L“C:/…”
)。您正在链接使用vc12编译的opencv(visual studio 2013)。Qt也是用vc12构建的吗?嗨,我添加了Qt版本(5++),运行make.Qt后的错误输出是通过他们网站上提供的安装程序(开源版本)安装的。但是include和bin文件夹位于msvc2013文件夹下。您从哪里获得make
?它不应该在这里。你如何建立你的项目?如果它是从控制台构建的,那么它应该从MSVC控制台构建,并且应该使用nmake
代替make
。感谢您的详细解释。我会尽快尝试!有了你的解释和对MSVC+nmake和Qt的一些研究,我终于能够构建这个应用程序了!