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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix