[轉]:xmake編譯配置過程詳解

waruqi發表於2019-02-16

xmake 在構建程式的時候,會去自動檢測系統環境,工程描述等來建立最合適的編譯配置來進行編譯。。

一般情況下,我們只需要執行:

$ xmake

就行了,並且如果工程描述沒有改變,就不會去重新檢測和生成配置。。

但是有時候,我們的編譯需求千奇百怪,不可能一行xmake就能完全滿足我們的需求,例如:我要在macosx上編譯android程式了,怎麼辦

這個時候就需要手動修改配置:

$ xmake f -p android --ndk=~/file/android-ndk

上面是簡寫,這樣會少敲些字元,如果要可讀性更好些,可以寫全:

$ xmake config --plat=android --ndk=~/file/android-ndk

然後我們繼續執行編譯即可:

$ xmake

如果每次編譯都是相同配置的話,就不需要重新配置了

當然有時候系統環境發生改變,例如之前用的是 gcc, 現在gcc被解除安裝了,裝了clang,那麼快取配置就無效了,這種情況下,xmake還沒有那麼智慧,能夠檢測到進行重配,只能手動加上 -c 引數,強制清楚配置快取,進行重新檢測:

$ xmake f -c

如果有時候遇到些配置上的問題,都可以嘗試加上這個引數,重試下,一般都能解決。。

上述講的都是相對於工程的區域性配置,只對當前工程有效,配置的快取資料都被放置在了當前工程目錄下:

projectdir/.xmake

如果有些配置引數,每次都不變,那就不需要每次都手動輸入一遍了,只需要放置到全域性配置中區就行了,例如引數:--ndk=~/file/android-ndk

我們可以通過全域性配置命令:

$ xmake global --ndk=~/file/android-ndk

或者簡寫方式:

$ xmake g --ndk=~/file/android-ndk

之後每次編譯android的版本,就可以簡化為:

$ xmake f -p android
$ xmake

是不是更方便了哈。。嘿嘿。。

在比如,我要每次強行都使用vs2008這個特定版本,而不使用自動檢測出來的v2015,(如果你裝了兩個vs的話),就可以通過全域性配置,設定到vs2008上去:

$ xmake g --vs=2008

然後編譯的時候執行(注:這裡加上-c,是因為全域性配置改了,最好強行重新檢測下):

$ xmake f -c
$ xmake

最後,如果需要了解配置的詳細引數,可以執行--help來了解:

$ xmake f -h
$ xmake g -h

相關文章