liunx esm8000交叉编译libmodbus库

使用esm8000编译器编译libmodbus库


1.下载安装

下载压缩包

下载地址
libmodbus-3.1.6.tar.gz

解压压缩包

进入到下载压缩包的文件夹下输入命令

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连接库

  1. 进入install,将文件夹include头文件和lib下的libmodbus.so,libmodbus.so.5,libmodbus.so.5.1.0,导入到qt项目文件下。
  2. 在pro文件添加
LIBS += -L$$PWD/lib -lmodbus
INCLUDEPATH += $$PWD/include/modbus
DEPENDPATH += $$PWD/include/modbus
  1. 选择esm8000编译器编译

编译没有报错就成功了

5.报错

qt链接动态库编译报错

skipping incompatible
cannot find -lmodbus

说明指定编译器编译库时有问题,请确认编译库时环境和指定编译器的名称是否有问题

使用make命令报错

确实是否使用的root用户

posted @   王白石呦  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示