环境准备
- wsl2安装
- wsl2 下 的ubuntu 18.04 安装
- ubuntu 换源
安装32位库
因为ubuntu 是 64位,arm-linux-编译器是32位,所以需要安装32位库
apt-get install lib32ncurses5
apt-get install lib32z1
sudo apt-get install gcc-multilib
sudo apt-get install lib32z1 lib32bz2-1.0
sudo apt-get install g++-multilib libc6-dev-i386
配置arm-linux-4.4.3
参考:Ubuntu20.04安装arm-linux-gcc4.4.3交叉编译器
友善之臂官网下载地址 :http://www.arm9.net/download.asp
- 解压
tar -zxvf arm-linux-gcc-4.4.3-20100728.tar.gz
此时当前目录下解压没错误的话会多个 opt 文件夹, 大致目录结构如下:
.
└── FriendlyARM
└── toolschain
└── 4.4.3
├── arm-none-linux-gnueabi
├── bin
├── include
├── lib
├── libexec
├── share
- 移动/复制 FriendlyARM 目录到
/usr/local/bin/
目录下:
cd opt
sudo mv FriendlyARM /usr/local/bin/
- 添加环境变量
vim ~/.bashrc
# 在文件.bashrc末尾添加
export PATH=$PATH:/usr/local/bin/FriendlyARM/toolschain/4.4.3/bin
# 更新环境变量
source ~/.bashrc
- 测试
arm-linux-gcc -v
# 如果出现如下信息即成功
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace
Thread model: posix
gcc version 4.4.3 (ctng-1.6.1)
- 测试编译
vim test.c
# 在文件中输入
#include "stdio.h"
int main()
{
printf("hello");
return 0;
}
# 编译
arm-linux-gcc test.c -o test
编译出错 :cc1plus: Value too large for defined type
编译器太旧不兼用64位的文件系统
挂载cifs
参考:实战 WSL2.0 docker 镜像中部署 arm 交叉工具链 (4)
使用cifs协议重新挂载工作文件夹work
- 共享文件夹work
参考:Linux开发环境搭建三 使用mount -t cifs 挂载windows共享目录方法与问题解决
windows找到对应文件夹word,右键属性,共享-》共享(H)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4kBZTYpc-1683125676014)(wsl2环境配置.assets/image-20230503213823859.png)]
- 查看本地ip
使用命令 ipcofig
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p7tBxfKi-1683125676015)(wsl2环境配置.assets/image-20230503213956451.png)]
- 挂载
回到ubuntu 使用mount命令挂载
- 进入home/用户 目录,新建挂载文件夹project
cd /home/ziwei
mkdir project
- 挂载共享的文件夹到 project
sudo mount -t cifs //192.168.1.231/work /home/ziwei/project -o username="Zziwei",password="123",nounix,noserverino,gid=ziwei,uid=ziwei
//192.168.1.231/work /home/ziwei/project : 本地共享文件,挂载目标文件
username,password : windows 用户名,密码
gid,uid : ubuntu 用户名,密码
- 测试:
arm-linux-gcc test.c -o test
t : 本地共享文件,挂载目标文件
username,password : windows 用户名,密码
gid,uid : ubuntu 用户名,密码
- 测试:
arm-linux-gcc test.c -o test