Qt+Halcon筆記(1)—— 環境配置(兩種方案,博主親測)

配置方案1:配置簡單,但移植後的機器需要安裝Halcon

注意:配置時建議使用環境變量來代替路徑,並考慮平臺移植問題

在這裏插入圖片描述

#includes
INCLUDEPATH += "$$(HALCONROOT)/include"
INCLUDEPATH += "$$(HALCONROOT)/include/cpp"

#libs
QMAKE_LIBDIR     += "$$(HALCONROOT)/lib/$$(HALCONARCH)"
unix:LIBS   += -lhalconcpp -lhalcon -ldl -lpthread
win32:LIBS  += halconcpp.lib halcon.lib

官方推薦:

# MacOS specific settings. Note that while dyld will search under
# /Library/Frameworks by default, the preprocessor/compiler/linker will not
# and need to be told explicitly.
macx {
  QMAKE_CXXFLAGS += -F/Library/Frameworks
  QMAKE_LFLAGS   += -F/Library/Frameworks
  LIBS           += -framework HALCONCpp
}
else {
  #defines
  win32:DEFINES += WIN32

  #includes
  INCLUDEPATH   += "$$(HALCONROOT)/include"
  INCLUDEPATH   += "$$(HALCONROOT)/include/halconcpp"

  #libs
  QMAKE_LIBDIR  += "$$(HALCONROOT)/lib/$$(HALCONARCH)"
  unix:LIBS     += -lhalconcpp -lhalcon -lXext -lX11 -ldl -lpthread
  win32:LIBS    += "$$(HALCONROOT)/lib/$$(HALCONARCH)/halconcpp.lib" \
                   "$$(HALCONROOT)/lib/$$(HALCONARCH)/halcon.lib"
}

官方Qt+Halcon例程位置:
C:\Users\Public\Documents\MVTec\HALCON-18.11-Steady\examples\cpp\qt\Matching

配置方案2:第三方庫的使用,將用到的頭文件和庫直接打包到項目中,不用在客戶機安裝Halcon

  1. 項目目錄下新建includelib文件夾
  2. D:\Program Files\MVTec\HALCON-18.11-Steady\include下所有內容複製到新建的include
  3. D:\Program Files\MVTec\HALCON-18.11-Steady\lib\x64-win64下的所有內容複製到新建的lib
  4. D:\Program Files\MVTec\HALCON-18.11-Steady\bin\x64-win64中找到與lib文件下*.lib文件重名的*.dll文件,並複製到新建的lib文件下

在這裏插入圖片描述
5. 將配置信息添加到*.pro文件中
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

注意:要去掉爲debug版本添加'd'作爲後綴選項,否則編譯時會找不到庫文件

以博主測試項目爲例:
在這裏插入圖片描述
├─include
│ └─halcon18_x64
│ ├─*.h
│ ├─com
│ ├─halconc
│ ├─halconcpp
│ │ └─*.h
│ ├─hdevengine
│ └─hlib
└─lib
└─halcon18_x64
├─*.dll
└─*.lib

配置結果如下:

INCLUDEPATH += $$PWD/include/halcon18_x64
INCLUDEPATH += $$PWD/include/halcon18_x64/halconcpp

win32: LIBS += -L$$PWD/lib/halcon18_x64/ -lhalcon

INCLUDEPATH += $$PWD/lib/halcon18_x64
DEPENDPATH += $$PWD/lib/halcon18_x64

win32: LIBS += -L$$PWD/lib/halcon18_x64/ -lhalconcpp

INCLUDEPATH += $$PWD/lib/halcon18_x64
DEPENDPATH += $$PWD/lib/halcon18_x64

此處,PWD指的是項目所在路徑

包含Halcon頭文件

官方自帶例程中,建議使用如下語句包含頭文件:

#ifndef __APPLE__
#  include "HalconCpp.h"
#else
#  ifndef HC_LARGE_IMAGES
#    include <HALCONCpp/HalconCpp.h>
#  else
#    include <HALCONCppxl/HalconCpp.h>
#  endif
#endif

說明

  1. 使用MinGW編譯會報錯,使用MSVC則不會
  2. 兩種方案需要根據實際情況選擇
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章