admin管理员组文章数量:1333532
Windows下Linux子系统构造交叉编译工具链(arm-linux-gcc)
一、下载arm-linux-gcc-4.3.2.tar.bz2,然后解压到/usr/local/目录下,使用命令:
sudo tar -jxvf arm-linux-gcc-4.3.2.tar.bz2 -C /
默认安装到/usr/local/arm 目录下
二、然后赋予/usr/local/arm/ 文件夹全部权限
sudo chmod 777 /usr/local/arm
三、然后用vim打开 /etc/profile 文件
sudo vi /etc/profile
在最后添加如下内容
export PATH=/usr/local/arm/4.3.2/bin/:$PATH
添加过后,执行
source /etc/profile
使配置生效
五、然后执行 arm-linux-gcc -v 查看交叉工具版本,但是会出现问题如下
arm-linux-gnueabihf-gcc: cannot execute binary file: Exec format error
之后在各种论坛找解决方法,有的说是ubuntu64位的系统,而arm-linux-gcc是32位的包,于是采用在ubunt下安装32的包兼容arm-linux-gcc,
比如
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386
sudo apt-get install lib32ncurses5 lib32ncurses5-dev
sudo apt-get install lib32z1
全部都不好使,依旧会出现cannot execute binary file: Exec format error,这个问题。
在快要放弃的那一刻,找到了一个贴子
附上源链接: https://wwwblogs/JiuHuan/p/10073632.html
以示尊重知识产权。
解决方案
通过 readelf -a arm-linux-gcc 检查程序导出表发现问题
readelf 命令报错:Not an ELF file - it has the wrong magic bytes at the start
初步确定问题来源,子系统不支持原生linux文件头。
解决方式如下:
添加xxx形式文件头支持
sudo apt update
sudo apt install qemu-user-static
sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic
'\x7fELF\x01\x01\x01\x03\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00' --mask '\xff\xff\xff\xff\xff\xff\xff\xfc\xff\xff\xff\xff\xff\xff\xff\xff\xf8\xff\xff\xff\xff\xff\xff\xff'
再执行 arm-linux-gcc -v,终于正常了
版权声明:本文标题:Windows下Linux子系统构造交叉编译工具链(arm-linux-gcc) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1742353031a2458869.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论