linux子系统 交叉编译,windows子系统WSL配置交叉编译环境过程记录

本文记录了在Windows 10的Linux子系统(WSL)中,使用Ubuntu 18.04 LTS配置arm-linux-gcc交叉编译环境的过程。主要步骤包括启用WSL,安装Ubuntu,配置编译器,并解决32位编译器在64位系统中的运行错误。最终通过安装32位运行库解决问题,使得arm-linux-gcc能正常工作。
摘要由CSDN通过智能技术生成

说明

现在win10系统内嵌了一个linux子系统,就想试试是否可以配置成自己平常用的开发环境,之前也试过,但失败了,这一次配置成功了,便记录一下配置过程。

使用的系统是ubuntu18.04LTS,要配置的编译器是arm-linux-gcc。

启用WSL

关于如何启用win10自带的子系统就不多说了,这个问一下度娘很容易就能知道,只要在“启用或关闭windows功能”中选中wsl,重启电脑后便可支持子系统。

启用之后我们可以在windows商店中选择自己喜欢的linux系统,我平时用的是ubuntu,所以选择了ubuntu18.04LTS,下载安装后,在win10左下角的搜索框输入ubuntu就会出现选项,确定后便可以进入ubutu系统了。

配置过程

我的目的是配置自己的工作环境,所以程序代码都是平时用的,这个就不分享了,大家可以自己找或者写个helloc world测试用。我只要能够成功编译自己的代码就算成功了。

进入系统后,先编译一下代码,看看缺少哪些支持。首先自然是make命令,这个好解决,直接

sudo apt install make

另外我还需要dos2unix,同样的方法也能解决。

最重要的就是编译器了,其实编译器的配置说起来是很简单的,无非就是把编译器拷贝过来,然后配置一下PATH路径,但对于我这种没那么熟练的菜鸟来说还是费了很多功夫的。

交叉编译器

我之前的编译器是arm-linux-gcc4.8.4,是新唐NUC9700芯片配的编译环境,但是我电脑上没有,所以在网上找这个版本找了好久都没找到,后来才找到新唐的资源,直接运行安装脚本然后等待安装完成就可以了。

以上这些虽然很费时间,但其实都还好解决,最蛋疼的是配置后之后还是不能用,编译的时候会报错:arm-linux-gcc: Syntax error: "(" unexpected。之前配置的时候就是卡在这里,一直没能解决,所以弃用了,这次依然遇到了这个问题。抱着试一试的态度又开始了网上查找解决方案的漫漫长路。

此处略去诸多心酸历程。

最后的解决办法:原因是wsl是64位系统,而编译器是32位的,这种情况下需要安装32位的运行库。

其实之前就意识到这个问题了,但根据网上所有的解决办法,安装了好多库,始终没有解决,没想到这次竟然解决了,方法是博文。

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'

启用和禁用的命令是:

sudo service binfmt-support start

sudo service binfmt-support stop

操作之后可以验证一下,arm-linux-gcc -v查看一下版本,如果可以说明正常了。

结语

期间其实还有很多问题,比如安装sqlite3之后提示找不到库,是因为还要安装sqlite3-dev,等等,但其实这些安装软件的还好,网上有很多解决办法可以查到,关键的就是32位和64位这个问题,折腾了好久。

声明:如果让我再配一遍说不定还是要折腾很久,因为我不确定我这出的这几个点是否就是这样解决的,因为中间还安装过许多其他乱七八糟的东西,说不定是某一个生效了呢,所以以上仅供参考,无法解决您的问题也希望轻喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值