我对此感到困惑:
我的Qt创建者是32位,而我的Windows是64位。在.pro文件中,我应该使用win 32 {...}还是赢得64 {...}?如果我想链接OpenCV库,我应该使用哪个库,x64或x86?
如果你能给我一点解释,那会更好。
谢谢!
答案 0 :(得分:2)
Qmake有一些平台和编译器变量,如:win32
,unix
,win32-msvc
,...在已安装的Qt目录中的mkspecs目录中可用。您可以使用基于平台和编译器的条件.pro文件。例如,您可以拥有能够在Windows和Linux上编译的项目。您可以有条件地链接到外部库:
win32: LIBS += -L$$PWD/Windows/Path/To/Library/ -lTheLibrary
else:unix: LIBS += -L$$PWD/Linux/Path/To/Library/ -lTheLibrary
如果要检测是否在Windows上编译32位或64位编译器并相应地链接到相关库,可以使用:
win32:contains(QMAKE_HOST.arch, x86_64) {
LIBS += -L$$PWD/Path/To/Library_64Bit/ -lTheLibrary
} else {
LIBS += -L$$PWD/Path/To/Library_32Bit/ -lTheLibrary
}
答案 1 :(得分:1)
有很多帖子涵盖了这些差异,但要记住的重要部分是你必须匹配编译器和第3版之间的架构您想要使用的派对图书馆。
例如,我有一台装有Windows 64位的计算机,我使用 Qt Creator 3.2.1 (opensource)基于 Qt 5.3.1 ( MSVC 2010,32位)。由于我的编译器是32位,因此使用32位版本的OpenCV库非常重要。
所以在 .pro 文件中我将使用:
LIBS += -L"C:\\opencv\\build\\x86\\vc12\\lib" \
-lopencv_world300d