xmake 提供了方便靈活的交叉編譯支持,大部分狀況下,都不須要配置很複雜的toolchains前綴,例如:arm-linux-
什麼的linux
只要這個toolchains目錄知足以下結構(大部分的交叉工具鏈都是這個結構):git
/home/toolchains_sdkdir - bin - arm-linux-gcc - arm-linux-ld - ... - lib - libxxx.a - include - xxx.h
那麼,使用xmake進行交叉編譯的時候,只須要進行以下配置和編譯:github
$ xmake f -p linux --sdk=/home/toolchains_sdkdir $ xmake
xmake會去自動探測,gcc等編譯器的前綴名:arm-linux-
,而且編譯的時候,也會自動加上 連接庫 和 頭文件 的搜索選項:bash
-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib
這些都是xmake自動處理的,不須要手動配置他們。。工具
可是,也有些例外的狀況,好比一些特殊的交叉工具鏈的,編譯器bin目錄,並不在 /home/toolchains_sdkdir/bin
這個位置,而是獨立到了 /usr/opt/bin
, 那怎麼辦呢,其實也不麻煩,配置的時候,再指定下bin目錄的位置就好:.net
$ xmake f -p linux --sdk=/home/toolchains_sdkdir --toolchains=/usr/opt/bin $ xmake
若是這個工具鏈很是奇葩,就是不按規則出牌,路徑規則很亂的話,那麼xmake也沒辦法那麼智能,只能手動配置全全部參數了:code
$ xmake f -p linux --sdk=/home/toolchains_sdkdir --toolchains=/usr/opt/bin --cxflags="-I/usr/xxx/include" --ldflags="-L/usr/zzz/lib" $ xmake
另外,若是交叉工具鏈的前綴,例如:arm-linux-
xmake 沒有檢測成功,你也能夠經過--cross=
參數手動配置上它:文檔
$ xmake f -p linux --cross=arm-linux- --sdk=/home/toolchains_sdkdir ...