主机环境:Ubuntu18
开发板环境:arm_linux_debian_ebf
交叉编译器:arm-linux-gnueabihf v7
在主机上的eclipse上尝试交叉编译文件
Makefile中把CC换成arm-linux-gnueabihf-gcc 其他保持不变
第一次编译出现了动态库版本不对的问题,想了想是之前编译用的gcc,于是新建文件夹重新编译一个新的库。
出现错误的库是mxml,编译中使用的命令:
./configure --host=arm-linux-gnueabihf --prefix=/home/xxx/cross/mxml/
make
sudo make install
第一次make失败 加了sudo后解决问题。
完成后再去编译库还是失败,想到可能是链接的问题 因为历史遗留原因 有无数个mxml 已经不知道哪个是哪个了 也不知道编译器链接的那个在哪里,于是直接在makefile中更改
指定动态链接路径:把-lmxml改为-L/home/xxx/cross/mxml/lib/ -lmxml
问题解决 成功通过编译。
然后用sftp把文件拷贝到开发板上
具体操作:
开发板输入#
sftp xxx@xxx-VirtualBox
输入密码后
->sftp
用cd找到程序所在位置
下载:
sftp->get 目录/要拷贝的文件名 /././要存放的目录目录/
然后傻傻的直接运行程序 发现动态链接没有放进去
接着 直接把之前用交叉编译器编译好的mxml/lib中的动态链接文件都拷贝到开发板的/usr/lib文件夹中
再次运行 成功跑起。