ARM - GCC - 建立自己的命令行编译环境
文章目录
- NXP - GCC - 建立自己的命令行编译环境
- 概述
- 笔记
- my_arm_gnu_env.bat
- 高版本的工具链需要显示包含基础系统头文件
- 编译的效果基本相同
- END
NXP - GCC - 建立自己的命令行编译环境
概述
在编译Smoothieware工程时,看到工程为了能稳定编译过,下载了特定版本的arm-gcc到工程目录中。
尝试在工程外部建立工具链,以后不管哪个工程,都用自己的工具链,直接编译就行。
将工程内部的工具链删掉。
笔记
GetGnuWin32_legacy_install_archive/gnuwin32 => gnuwin32arm-gnu-toolchain-14.3.rel1-mingw-w64-x86_64-arm-none-eabi => arm-gnu-toolchainD:\3rd\openpnp_prj\Smoothieware\Smoothieware\build\win32 => curlD:\3rd\openpnp_prj\Smoothieware\Smoothieware\build\win32中,除了curl.exe之外,其他的exe都删除,因为gnuwin32中有。
my_arm_gnu_env.bat
在自己建立的启动bat中,包含自己目录中的路径到PATH就行。
@echo off
rem @file my_arm_gnu_env.bat
rem @breif 通用的arm-gcc工具链,编译哪个工程都可以
set path=%~dp0arm-gnu-toolchain\bin;%~dp0gnuwin32\bin;%~dp0curl;%path%
cmd /k "echo my arm gnu env"
高版本的工具链需要显示包含基础系统头文件
低版本的gcc可能默认包含了系统基础头文件,但是高版本的需要自己显势包含系统头文件。
换了高版本工具链后,可能工程的头文件包含要根据报错提示(e.g. uint32_t 找不到),自己添加头文件。
自己添加头文件时,尽量往高层.h中去添加,这样的话,要修改的地方也不多。
编译的效果基本相同
make clean
make
冰沙工程如果采用-O0, 是装不下的。
默认是采用-O2 +g3
只需要-O1 + g3 就能装下,不用优化那么多。