如果你只想編譯當前主機環境的平臺,例如在windows上編譯windows版本,在macosx上編譯macosx版本,那麼你只需要敲以下命令即可:
xmake
因為xmake預設會去檢測當前的環境,預設編譯當前主機的平臺版本,不需要做額外的配置,並且預設編譯的是release版本。
如果工程裡面有多個目標,那麼上面的命令,會去編譯所有目標,如果只想編譯指定一個目標,例如:test,那麼只需執行:
xmake test
如果你想編譯debug版本,那麼需要做些簡單的配置:
xmake config --mode=debug
xmake
xmake針對每個命令和引數,都提供了簡寫版本:
xmake f -m debug
xmake
注:為了提高靈活性,release版本和debug版本的編譯選項設定,需要自己在工程描述檔案中描述,如果沒有設定的話,release和debug版本生成的程式是一樣的。
如果你想強制重新構建所有,可以執行:
xmake -r
xmake --rebuild
如果要指定編譯具體某個架構,可以這麼進行編譯:
xmake f -a armv7
xmake
一般情況下,如果沒有指定架構,預設會去使用指定平臺的預設架構,例如:macosx下預設是x86_64,iphoneos下士armv7
如果想要指定編譯其他平臺,例如在macosx上編譯iphoneos的版本,那麼:
xmake f -p iphoneos
xmake
編譯android版本:
xmake f -p android --ndk=xxxx
xmake
雖然配置完後,每次編譯不需要重新配置,但是如果切換編譯目標平臺到ios、linux,那麼之前ndk的設定就被清除了,下次得重新配置。
如果想要更加方便的不同平臺間來回切換編譯,可以將ndk設定到全域性配置中,例如:
-- 將ndk設定到全域性配置中
xmake g --ndk=xxx
-- 切換到android編譯平臺,不需要每次都設定ndk了
xmake f -p android
xmake -r
-- 切換到ios編譯平臺
xmake f -p iphoneos
xmake -r
編譯windows版本,很簡單,只要你機子裝了vs,xmake會去自動檢測,不需要做額外的配置,只需要開啟cmd,進入你的工程目錄,
然後執行xmake就行了。
使用其他交叉工具鏈進行編譯:
xmake f -p android -a armv7-a --cross=arm-linux-androideabi- --toolchains=/xxxx/bin
xmake
預設在編譯配置的時候,會去快取上一次的配置,這樣每次配置只需要修改部分引數就行了,不需要每次全部重新配置
如果你想重新配置所有,清楚原有的快取,可以加上--clean引數:
xmake f -c
xmake f --clean
xmake
xmake在配置的時候,會去檢測工程依賴的一些介面和連結庫,如果你想要看具體詳細的配置檢測資訊,可以加上--verbose引數,回顯配置資訊
xmake f -c -v
xmake f --clean --verbose
xmake
xmake還支援在編譯的時候,手動設定一些編譯選項和工具,具體引數列表如下:
--cc=CC The C Compiler
--cxx=CXX The C++ Compiler
--cflags=CFLAGS The C Compiler Flags
--cxflags=CXFLAGS The C/C++ compiler Flags
--cxxflags=CXXFLAGS The C++ Compiler Flags
--as=AS The Assembler
--asflags=ASFLAGS The Assembler Flags
--ld=LD The Linker
--ldflags=LDFLAGS The Binary Linker Flags
--ar=AR The Static Library Linker
--arflags=ARFLAGS The Static Library Linker Flags
--sh=SH The Shared Library Linker
--shflags=SHFLAGS The Shared Library Linker Flags
--mm=MM The Objc Compiler
--mxx=MXX The Objc++ Compiler
--mflags=MFLAGS The Objc Compiler Flags
--mxflags=MXFLAGS The Objc/c++ Compiler Flags
--mxxflags=MXXFLAGS The Objc++ Compiler Flags