1、Linux 下的 HALCON 安装
1.1 软件下载
软件下载可通过 MVTec
官网或大恒图像官网下载。
MVTec 官网:
www.mvtec.com
大恒图像官网:
www.daheng-imaging.com
1.2 软件安装
以下是以 HALCON 24.11 Progress
版为例,其他版本安装过程类似。详细安装过程可参考
HALCON 英文安装向导。
1、下载对应软件

2、双击

3、到网页安装,安装完之后,购买或使用试用license

4、设置环境变量
在 Linux
系统下安装完
HALCON
,是没有设置环境变量的,需要自己手动设置。
HALCON
环境变量如 下,可以选择设置到.profile
中,也可选择设置到
.bashrc
中,设置过程中,注意
HALCONARCH
的参数。
# Sample shell script for HALCON environment settings
# (sh syntax)
# If you are using the Bourne shell source this file with the following
# command:
# source .profile_halcon
HALCONARCH=x64-linux; export HALCONARCH
HALCONROOT="/opt/halcon"; export HALCONROOT
HALCONEXAMPLES=${HALCONROOT}/examples; export HALCONEXAMPLES
HALCONIMAGES=${HALCONROOT}/examples/images; export HALCONIMAGES
PATH=${HALCONROOT}/bin/${HALCONARCH}:${PATH}; export PATH
if [ ${LD_LIBRARY_PATH} ] ; then
LD_LIBRARY_PATH=${HALCONROOT}/lib/${HALCONARCH}:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=${HALCONROOT}/lib/${HALCONARCH}; export LD_LIBRARY_PATH
fi
可在用户目录(cd ~
)下,通过如下命令打开
.profile
或
.bashrc
。
sudo gedit .profile
或
sudo gedit .bashrc
设置完成后,需执行
source .profile
或
source .bashrc
然后重启终端,通过命令查看环境变量设置是否正确。

PS:如果 HALCON
环境变量设置到
.profile
,执行
echo $LD_LIBRARY_PATH
,无法获取结果,可 考虑把环境变量设置到.bashrc
中。
2、Linux 下交叉编译环境搭建
2.1 交叉编译概述
2.1.1 什么是交叉编译
1
、本地编译
解释什么是交叉编译之前,先要明白一个概念:本地编译
。我们之前常见的软件开发,都是属于本地编 译:在当前的 PC
下,
x86
的
CPU
下,直接编译出来程序,可以运行的程序(或者库文件),其可以直接在 当前的环境,即 x86
的
CPU
下,当前电脑中运行。 此时的编译,可以叫做,本地编译
,
即在当前目标平台下,编译出来的程序,也只是放到当前平台下,
就可以运行的。
2
、交叉编译
交叉编译,是一个和本地编译,相对应的概念。而所谓的交叉编译,就是:在一种平台上编译,编译出
来的程序,是放到别的平台上运行即编译的环境,和运行的环境不一样,属于交叉的,此所谓
cross
。 交叉编译,这个概念,主要和嵌入式开发有关。交叉编译,英文常写作 cross compile
,也有其他写法: crosscompile, cross compiling 等。
之所以要有交叉编译,主要原因是:
嵌入式系统中的资源太少。具体的解释就是:交叉编译出来的程序, 所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接的本地编译。 最常见的情况是:在进行嵌入式开发时,目标平台,即嵌入式开发板,比如是最大主频 200MHz
的
ARM 的 CPU
,加上
32M
的
RAM
,加上
1G
的
Nand Flash
等等。在如此相对比较紧张的硬件资源的前提下,在 已经运行了嵌入式 Linux
的前提下,是无法很方便的直接在嵌入式
Linux
下,去本地编译,去在
ARM
的 CPU 下,编译出来,供
ARM
的
CPU
可以运行的程序的。因为编译,开发,都需要相对比较多的
CPU
, 内存,硬盘等资源,而嵌入式开发上的那点资源,只够嵌入式(Linux
)系统运行的,没太多剩余的资源, 供你本地编译。
2.1.2 什么是交叉编译工具链
在编译软件的时候,会用到(链接)一些平台相关的类库,如果是在本地运行的话,一般不用作特殊处 理,但由于嵌入式软件的运行平台不是本地,所以要做一些特殊处理,让编译环境依赖的类库脱离本地依 赖,使用嵌入式平台的类库来进行链接,处理这一过程就叫作交叉编译工具链。
交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]
arch -
体系架构,如
ARM
,
MIPS
vendor -
工具链提供商
os -
目标操作系统
eabi -
嵌入式应用二进制接口(
Embedded Application Binary Interface
)
2.2 交叉编译工具链安装
2.2.1 在线方式
在 armv7a-linux
下的安装方式:
apt-get install gcc-arm-linux-gnueabihf
apt-get install g++-arm-linux-gnueabihf
在 aarch64-linux
下的安装方式:
apt-get install gcc-aarch64-linux-gnu
apt-get install g++-aarch64-linux-gnu
此处以 RK3399 为例说明,RK3399 是 aarch64 架构,所以需执行以下两条命令。
apt-get install gcc-aarch64-linux-gnu
apt-get install g++-aarch64-linux-gnu
安装完成后,可通过以下命令查看是否安装成功。
aarch64-linux-gnu-gcc -v
若出现如下图所示情况,则证明安装成功了。
2.2.2 离线方式
此处以 RK3399
为例说明,
RK3399
是
aarch64
架构,所以需下载支持
aarch64-linux
的交叉编译工 具,下载地址:
https://www.linaro.org/downloads/
,
注意:因个别
ARM
厂家可能会提供定制版交叉编译工
具,所以建议提前联系厂家,让
ARM
厂家推荐交叉编译工具。
接下来将下载到的交叉编译工具包
gcc-linaro-7.4.1-2019.02-i686_aarch64-linux-gnu.tar.xz
,通过命令 解压。
将解压后的文件复制到想要安装的目录,我这里选择根目录下 opt
文件夹,即
/opt
。
将复制后的文件夹重命名为 gcc-aarch64-linux-gnu。
然后将/opt/gcc-aarch64-linux-gnu/bin
目录添加到环境变量中。输入命令:
sudo gedit /etc/profile
注意:此处可根据实际情况选择相应的编辑工具。
在末尾添加如下内容:
export PATH="/opt/gcc-aarch64-linux-gnu/bin:$PATH"
接着运行命令是环境变量生效。
source /etc/profile
通过指令查看是否安装成功。
aarch54-linux-gnu-gcc -v
注意:如果查看过程中遇到以下问题
可通过如下命令解决。
sudo apt-get install lib32ncurses5 lib32z1