Qt+Halcon笔记(1)—— 环境配置(两种方案,博主亲测)
配置方案1:配置简单,但移植后的机器需要安装Halcon配置方案2:第三方库的使用,将用到的头文件和库直接打包到项目中,不用在客户机安装Halcon说明:1. 使用MinGW编译会报错,使用MSVC则不会2. 两种方案需要根据实际情况选择
·
配置方案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
- 项目目录下新建
include和lib文件夹 - 将
D:\Program Files\MVTec\HALCON-18.11-Steady\include下所有内容复制到新建的include下 - 将
D:\Program Files\MVTec\HALCON-18.11-Steady\lib\x64-win64下的所有内容复制到新建的lib下 - 在
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
说明
- 使用MinGW编译会报错,使用MSVC则不会
- 两种方案需要根据实际情况选择
更多推荐



所有评论(0)