跨平臺構建工具,cmake 是 yyds ? bjd !
大家好,我是 ZhengN。本次給大家分享一個優秀的跨平臺構建工具。
在我們嵌入式中,開發環境多種多樣。在 windows 下進行開發,有各種好用的 IDE 給我們使用,我們可以圖形化地創建工程、配置工程、編譯工程。在 Linux 下,可能就 iu 沒有那麼 “方便” 了。
在 Linux 下進行嵌入式開發,我們需要使用 gcc、make、cmake 等工具來編譯。
-
源文件較少時可以使用直接調用 gcc 工具進行編譯。
-
源碼文件較多時,可借用 make 工具。make 通過解析 Makefile 文件來執行一些 gcc 命令進行編譯。
-
簡單的項目,Makefile 還可以自己寫一寫。但實際項目中,我們很少直接編寫 Makefile,而是藉助 cmake 工具來生成。cmake 根據一個 CMakeLists.txt 文件來生成不同平臺的 Makefile 文件,達到跨平臺的作用。
已經會 Makefile 了,還有沒有必要學習 CMakeLists.txt?關於這個問題,網上各路大神都有自己的一些看法:
-
反對學習 cmake、CMakeLists.txt 的理由大概是:增加學習成本、不跨平臺不需要學 cmake 等。
-
支持學習 cmake、CMakeLists.txt 的理由大概是:跨平臺、管理大型項目簡單、易擴展、高效率等。
我覺得還是有必要學一下的,能用上的概率比較大。關於 cmake 的學習,強烈推薦一篇博文:
cmake 相關推文:
實用 | 使用 Cmake 快速生成 visual studio 工程
xmake 簡介
同 cmake 一樣,xmake 也是一個跨平臺的安裝編譯工具,是個國產工具。
之前分享的 TBOX | 一個用 c 語言實現的跨平臺開發庫,就是使用 xmake 來管理的。
xmake 是一個基於 Lua 的輕量級跨平臺構建工具,使用 xmake.lua 維護項目構建,相比 makefile/CMakeLists.txt,配置語法更加簡潔直觀,對新手非常友好,短時間內就能快速入門,能夠讓用戶把更多的精力集中在實際的項目開發上。
xmake 官網:
https://xmake.io/
1、支持的平臺
-
Windows (x86, x64)
-
macOS (i386, x86_64, arm64)
-
Linux (i386, x86_64, cross-toolchains ..)
-
*BSD (i386, x86_64)
-
Android (x86, x86_64, armeabi, armeabi-v7a, arm64-v8a)
-
iOS (armv7, armv7s, arm64, i386, x86_64)
-
WatchOS (armv7k, i386)
-
MSYS (i386, x86_64)
-
MinGW (i386, x86_64, arm, arm64)
-
Cygwin (i386, x86_64)
-
Wasm (wasm32)
-
Cross (cross-toolchains ..)
2、支持的工具鏈
3、支持的語言
-
C/C++
-
Objc/Objc++
-
Swift
-
Assembly
-
Golang
-
Rust
-
Dlang
-
Fortran
-
Cuda
-
Zig (Experimental)
4、編譯測試
多任務並行編譯測試:
單任務編譯測試:
官網上的內容很豐富,對 xmake 做了很詳細的介紹,感興趣的小夥伴可以自己去了解學習。
xmake 安裝、使用
下面我們一起來安裝、使用,直觀地認識一下:
針對不同的環境,xmake 有多種安裝方式。
Ubuntu 下可使用 wget 或 curl 安裝,安裝命令:
bash <(wget https://xmake.io/shget.text -O -)
或:
bash <(curl -fsSL https://xmake.io/shget.text)
下面我們使用 curl 來安裝:
xmake 的參數很豐富,通過命令 xmake create --help
來查看:
我們可以直接通過命令來創建一個工程。
創建一個 C 語言工程,輸入命令:
xmake create -l c -P ./c_test
創建一個 C++ 工程,輸入命令:
xmake create -l c++ -P ./cpp_test
這裏的 -l
參數指定工程所用的編程語言, -P
參數指明工程的名稱。其中 xmake.lua 就類似於 cmake 的 CMakeLists.txt 文件。裏面的內容如:
target("c_test")
set_kind("binary")
add_files("src/*.c")
其語法類似於 CMakeLists.txt 但看起來比 CMakeLists.txt 更簡潔。
構建工程,輸入命令 xmake
:
運行程序,輸入命令 xmake run c_test
:
調試程序,輸入命令 xmake run -d c_test
:
關於跨平臺工具,目前用得比較多的自然是 cmake,但大家也可以持續關注一下 xmake 這一款優秀的構建工具,說不定後面會火~
以上就是本次關於 xmake 的分享,咱們下期見~
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/LVRKLkJXNqPlL_RDmcQBQg