1、首先将交叉编译工具链添加到环境变量中,执行sudo vi /etc/profile
注:上图中bin/下面的arm…目录下放的是交叉编译工具链,如果不写全的话不能自动补齐。
2、编辑完成后执行source /etc/profile,检查交叉编译工具链是否正常安装,可以执行xxx-gcc -v ,如果出现gcc的版本则表示正常如下图所示
3、此时就可以用该交叉编译工具链编译了
注:1、64位的交叉编译工具链不能够在32位的机器上面运行,会出现格式错误
2、如果在编译时指定了-sysroot=dir 就是为编译时指定了逻辑目录。编译过程中需要引用的库,头文件,如果要到/usr/include目录下去找的情况下,则会在前面加上逻辑目录。
3、march指定的是当前cpu的架构,而mtune是真正作用于某一型号cpu的选项。
4、-g 表示为了调试gdb使用-O0 表示优化级别为0,就是不进行优化
-mabi=apcs-gnu 使用gnu的apcs(ARM PROCEDUCE CALL STANDARD),它是指定用何种方式来实现函数的调用
-mfpu=neno 硬件浮点单元
-fno-builtin 表示不要使用编译器中默认的一些简单的内建函数,
-mfloat-ABI=名
指定要使用的浮点ABI。 允许的值是:“soft”,“softfp”和“hard”。
指定soft'会导致GCC生成包含用于浮点运算的库调用的输出。
softfp’允许使用硬件浮点指令生成代码,但仍然使用soft-float调用约定。 `hard’允许生成浮点指令并使用FPU特定的调用约定。
默认值取决于特定的目标配置。 请注意,硬浮点和软浮点ABI不是链接兼容的; 您必须使用相同的ABI编译整个程序,并链接到一组兼容的库。