如何通過xmake進行交叉編譯
阿新 • • 發佈:2018-12-30
xmake 提供了方便靈活的交叉編譯支援,大部分情況下,都不需要配置很複雜的toolchains字首,例如:arm-linux-
什麼的
只要這個toolchains目錄滿足如下結構(大部分的交叉工具鏈都是這個結構):
/home/toolchains_sdkdir
- bin
- arm-linux-gcc
- arm-linux-ld
- ...
- lib
- libxxx.a
- include
- xxx.h
那麼,使用xmake進行交叉編譯的時候,只需要進行如下配置和編譯:
$ xmake f -p linux --sdk=/home/toolchains_sdkdir $ xmake
xmake會去自動探測,gcc等編譯器的字首名:arm-linux-
,並且編譯的時候,也會自動加上 連結庫 和 標頭檔案 的搜尋選項:
-I/home/toolchains_sdkdir/include -L/home/toolchains_sdkdir/lib
這些都是xmake自動處理的,不需要手動配置他們。。
但是,也有些例外的情況,比如一些特殊的交叉工具鏈的,編譯器bin目錄,並不在 /home/toolchains_sdkdir/bin
這個位置,而是獨立到了 /usr/opt/bin
, 那怎麼辦呢,其實也不麻煩,配置的時候,再指定下bin目錄的位置就好:
$ xmake f -p linux --sdk=/home/toolchains_sdkdir --toolchains=/usr/opt/bin $ xmake
如果這個工具鏈非常奇葩,就是不按規則出牌,路徑規則很亂的話,那麼xmake也沒辦法那麼智慧,只能手動配置全所有引數了:
$ 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 ...