liunx esm8000交叉编译libmodbus库
使用esm8000编译器编译libmodbus库
1.下载安装
下载压缩包
解压压缩包
进入到下载压缩包的文件夹下输入命令
tar -xzvf libmodbus-3.1.6.tar.gz
进入解压的文件下,创建文件夹,设置文件夹权限
cd libmodbus-3.1.6
mkdir install
chmod 777 install
2.设置esm8000编译环境变量
进入到esm8000编译安装的目录下,会看到文件environment-stup-aarch64-poky-linux
使用source命令导入environment开头的配置文件,这个文件包含了交叉工具链正常运行所需要的环境变量。
先使用su root登录命令,登录root用户执行命令,将环境配置在root用户上,使用普通用户后面进行make命令会报错。
su root
Password: [请输入 root 密码]
source environment-stup-aarch64-poky-linux
3.开始编译
不要退出root用户和关闭终端,直接cd进入到libmodbus-3.1.4文件下,执行 ./configure
./configure --host=aarch64-poky-linux --enable-static --prefix=/home/libmodbus-3.1.6/insstall/
- --host=指定编译的编译器
- --prefix= 设置生成后的路径
执行 make命令和make install命令生成库文件
make
make install
编译之后出现compiler显示的不是你指定的编译器编译的,有可能你的配置环境没有成功,或者是指定编译器名称写的有问题.

这是成功编译的样子

4.qt连接库
- 进入install,将文件夹include头文件和lib下的libmodbus.so,libmodbus.so.5,libmodbus.so.5.1.0,导入到qt项目文件下。
- 在pro文件添加
LIBS += -L$$PWD/lib -lmodbus
INCLUDEPATH += $$PWD/include/modbus
DEPENDPATH += $$PWD/include/modbus
- 选择esm8000编译器编译
![]()
编译没有报错就成功了
5.报错
qt链接动态库编译报错
skipping incompatible
cannot find -lmodbus
说明指定编译器编译库时有问题,请确认编译库时环境和指定编译器的名称是否有问题
使用make命令报错
确实是否使用的root用户
本文来自博客园,作者:王白石呦,转载请注明原文链接:https://www.cnblogs.com/wangbaishi123/p/18590864


浙公网安备 33010602011771号