Skip to content

如何配置交叉编译?

Linwei edited this page Aug 29, 2024 · 1 revision

交叉编译的话,需要单独一个 ini 文件来规定工具链,比如我的 android 交叉编译配置:

[default]
flag=-Wall
home=/path/to/android-toolchain/bin
path=/path/to/android-toolchain/bin
gcc=arm-linux-androideabi-gcc
ar=arm-linux-androideabi-ar
as=arm-linux-androideabi-as
target=android
name=android,posix,arm
cpu=4

其中 home 规定了 ndk 工具链 gcc 环境所在的可执行路径,可以是绝对路径,或者是相对于 ini 配置文件的相对路径,后面同时定义了:gcc, ar, as 三个必须的可执行文件名,使用的时候:

emake --ini=d:/android-toolchain/android-9/emake.ini xxx

或者放到 ~/.config/emake/android-9.ini 里面,用:

emake --cfg=android-9 xxx

指定使用它,在 default 区中定义了很多 name ,这些 name 可以用来做工程文件的条件判断,比如:

android/flag: -mfloat-abi=softfp
posix/link: pthread
win32/link: winmm, wsock32, ws2_32

不同的 ini 文件中定义的 name 不同,在工程文件中会判断是否定义过某个 name ,定义过的话,执行后面的话,如此在同一个工程文件中,可以针对不同平台定义源文件,设置编译参数。