参考链接:gnu工具链
1.Download MinGW and MSys packages.
安装MSys
参考此链接https://www.msys2.org/安装,注意只需要安装即可。
安装开发环境,设置镜像,需要进入安装路径中的/etc/pacman.d/进行修改
// /etc/pacman.d/mirrorlist.mingw32
Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686// /etc/pacman.d/mirrorlist.mingw64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64// /etc/pacman.d/mirrorlist.msys
Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch// /etc/pacman.d/mirrorlist.ucrt64
Server = http://mirrors.ustc.edu.cn/msys2/mingw/ucrt64
修改好上述文件后,重启MSYS,执行以下命令安装基本开发环境:
// Update the package database and base packages
pacman -Syu
然后再次重启MSYS,执行以下命令:
// Update the rest of the base packages
pacman -Su// install some tools and the mingw-w64 GCC
pacman -S --needed base-devel mingw-w64-x86_64-toolchainpacman -S mingw-w64-x86_64-gcc// gcc安装在mingw64\bin目录
export PATH=/mingw64/bin:$PATHpacman -S mingw-w64-x86_64-SDL2
pacman -S mingw-w64-x86_64-glib2
pacman -S mingw-w64-x86_64-winpthreads-git mingw-w64-x86_64-libwinpthread git
pacman -S mingw-w64-x86_64-pixman
pacman -S git
pacman -S mingw-w64-x86_64-capstone
2.创建目录
在随意目录下创建gnu文件夹,在gnu目录下创建out文件夹
3.进入http://ftp.gnu.org/gnu/binutils/,往下拉查找到最新的tar.bz2结尾的包,下载,并将下载文件复制到gnu目录下。
4.打开MSYS2
5.进入gnu目录
6.解压下载的binutils包,新建build文件夹,并进入该文件夹
7.注意第10步需要修改2.39为自己的版本号,且命令为一整行命令。
../binutils-2.39/configure --target arm-eabi --enable-win32-registry=MyToolchainName --prefix /c/gnu/out
8.编译
make -j16
9.安装输出到out目录
make install-strip
10 下载gcc包http://ftp.gnu.org/gnu/gcc/
选择11.3.0版本的包,高版本的gcc包存在bug。
11 使用ie浏览器打开此链接ftp://sourceware.org/pub/newlib/,下载下图中3.1.0newlib包
如果打不开可选择打开newlib库,再选择newlib
12.准备工作
mkdir gcc-11.3.0-build
在MSYS2中进入gcc-11.3.0-build目录
cd gcc-11.3.0-build
在MSYS2中解压下载的包
tar -xzvf <包名>
如:
tar -xzvf gcc-11.3.0.tar.gz
tar -xzvf newlib-3.1.0.tar.gz
添加环境变量
export TARGET="arm-eabi"
export PATH="/d/gnu/out/bin:$PATH"
注意/d/gnu/out/bin为自己电脑中/gnu/out/bin目录
13 配置gcc
../gcc-11.3.0/configure --target arm-eabi --enable-win32-registry=MyToolchainName --prefix /d/gnu/out/ --enable-languages=c,c++ --disable-nls --disable-shared --with-newlib --with-headers=../newlib-4.1.0/newlib/libc/include
14 .编译GCC
make -j16
15.安装gcc
make install-strip
16 新建newlib-3.1.0-build文件夹,并在MSYS2中进入文件夹
mkdir newlib-3.1.0-build
cd ../
cd newlib-3.1.0-build
17.配置newlib
../newlib-3.1.0/configure --target arm-eabi --prefix /d/gnu/out
注意3.1.0修改为自己下载的newlib版本号和/d/gnu/out为自己电脑的目录。
18.编译
make
19 安装
make install
19.下载GDB
用IE浏览器打开ftp://sourceware.org/pub/gdb/releases/ ,选择
20.准备工作
tar -xzvf gdb-9.1.tar.gz
mkdir gdb-9.1-buildcd gdb-9.1-build/
21.配置
../gdb-9.1/configure --target arm-eabi --prefix /d/gnu/out
22.编译
make -j16
19 安装
make install
19 编译完成后,增加系统环境变量
1.增加out目录下环境变量
如下图所示,如果对比环境是否增加
D:\gnu\out\libexec\gcc\arm-eabi\11.3.0
D:\gnu\out\lib\bfd-plugins
D:\gnu\out\share\man\man1
D:\gnu\out\bin
D:\gnu\out\arm-eabi\bin
2.增加msys2的环境变量
注意此目录为安装msys2下的64位系统的bin目录
D:\installAddress\msys2\mingw64\bin
20.编译 libiconv
下载链接:libiconv
下载后解压到gnu目录下
在msys2终端进入该目录。
输入:
./configure && make && make install
等待编译完成。
编译完成后将编译生成的dll加入系统环境变量中
D:\gnu\libiconv-1.17\lib\.libs
21.测试arm-eabi-gcc工具链
使用管理员身份运行命令行提示符
输入
D:
进入可切换盘符
进入gnu目录,输入
arm-eabi-gcc -v
通过上图可以看到arm-eabi-gcc工具链已经配置完成。
22.注意此工具链仅用于裸机程序的编译,仅用于单片机开发板。