Qt+Halcon在XP上構建和執行

QQ2651401966發表於2020-11-22

​    XP是很老的系統了,微軟都不支援,也很是有客戶會用到XP系統,我們的軟體支援Win10和Win7,就是不支援XP。這次我們遇到的這個客戶不能更換系統,只能讓我們的軟體支援XP。

    讓軟體支援XP有可能比寫軟體本身都還要麻煩,主要是現在好多第三方庫都不支援XP,所以軟體改動特別大。

一、構建支援XP的QT環境

    Qt5目前有兩個長期支援版本(Long Term Support)Qt5.6和Qt5.9;

    Qt從5.7版本及以後不再支援WinXP系統,即編譯生成的exe檔案無法在WinXP系統執行,若要支援xp,推薦最穩定方式qt5.5.+vs2010(曾生成的exe在xp sp3部署上千臺),稍微激進+最新組合vs2015+qt5.6(傳言仍然有人反饋xp依然會有莫名其妙問題);

    由於2020年qt要進入QT6版本,所以QT5的有些版本已經改變位置,改為

    http://download.qt.io/new_archive/qt/

    我這次選用的是Qt5.6.2+VS2015,下載地址如下,版本如下圖所示

    http://download.qt.io/new_archive/qt/5.6/5.6.2/

    下載安裝前應該先安裝VS2015。

    在Pro檔案加入一些內容,讓程式支援XP。

win32 {    QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01    QMAKE_LFLAGS_CONSOLE = /SUBSYSTEM:CONSOLE,5.01    DEFINES += _ATL_XP_TARGETING#    QMAKE_CFLAGS += /D _USING_V120_SDK71_#    QMAKE_CXXFLAGS += /D _USING_V120_SDK71_#    LIBS += -L$$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib)#    INCLUDEPATH += $$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include)}

 

二、構建支援XP的Halcon環境

    Halcon高版本也不支援QT,只有Halcon12,Halcon11才支援,而12、11這兩個版本和我現在用的19差別特別大,要改的東西相當多,而且12、11有些功能不支援,沒辦法只能將Halcon13編譯一個支援XP的庫,Halcon13和19接近,但也有些東西不支援,但是改動東西要少。

    這裡我把編譯好的庫和標頭檔案放到了網盤,有需要的可以下載。

    連結:https://pan.baidu.com/s/1PKrPz-kpBUdmhAmuBj4LRA

    提取碼:0o6l

    下載後加入Halcon13的標頭檔案和庫。

INCLUDEPATH   += "$$PWD/Halcon/halcon13_x86_xp/include"INCLUDEPATH   += "$$PWD/Halcon/halcon13_x86_xp/include/halconcpp"#libsQMAKE_LIBDIR  += "$$PWD/Halcon/halcon13_x86_xp/lib"LIBS          += $$quote($$PWD/Halcon/halcon13_x86_xp/lib/halconcpp.lib)LIBS          += $$quote($$PWD/Halcon/halcon13_x86_xp/lib/halcon.lib)

三、部署程式執行環境

    先獲取Qt執行的庫,進入命令模式輸入windeployqt.exe的路徑+你的程式名。

D:\5.6.3\msvc2015\bin\windeployqt.exe myapp.exe

    然後就會自動生成qt依賴庫。

    然後加入halcon13的dll。

    最後在XP上很有可能會缺少MSVC庫,然後要下一個

    Visual C Redistributable for Visual Studio 2015,下載地址為

https://www.microsoft.com/zh-cn/download/details.aspx?id=48145

 

    更具需要下載程式並安裝。

 

 

 

 

相關文章