-
Notifications
You must be signed in to change notification settings - Fork 115
如何配置交叉编译?
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 ,定义过的话,执行后面的话,如此在同一个工程文件中,可以针对不同平台定义源文件,设置编译参数。