XMake學習筆記(1):Windows(MSYS2)下MinGW-w64環境搭建和XMake安裝

Eriktse0發表於2023-04-29

以前寫的C++基本都是C with STL,大多是程式導向的演算法題,或者比較小的專案,然後經常報各種編譯錯誤(對編譯原理不熟),經常把人搞到崩潰,搞不懂構建、連結之類的東西。

現在開始記錄一下XMake的學習筆記,記錄一些學習過程中踩的坑,在這篇文章,你將學習到Windows下利用MSYS2進行Mingw-w64環境搭建和XMake安裝,並用Xmake構建一個專案,編譯一個HelloWorld程式。

? 作者:Eriktse
? 簡介:19歲,211計算機在讀,現役ACM銀牌選手?力爭以通俗易懂的方式講解演算法!❤️歡迎關注我,一起交流C++/Python演算法。(優質好文持續更新中……)?
? 閱讀原文獲得更好閱讀體驗:https://www.eriktse.com/algorithm/1121.html

XMake簡介

一個由國人開發的C++構建工具,真的很好用!yyds。

xmake 是一個基於 Lua 的輕量級跨平臺構建工具,使用 xmake.lua 維護專案構建,相比 makefile/CMakeLists.txt,配置語法更加簡潔直觀,對新手非常友好,短時間內就能快速入門,能夠讓使用者把更多的精力集中在實際的專案開發上。
雖然,簡單易用是 xmake 的一大特色,但 xmake 的功能也是非常強大的,既能夠像 Make/Ninja 那樣可以直接編譯專案,也可以像 CMake/Meson 那樣生成工程檔案,還有內建的包管理系統來幫助使用者解決 C/C++依賴庫的整合使用問題。
目前,xmake主要用於C/C++專案的構建,但是同時也支援其他native語言的構建,可以實現跟C/C++進行混合編譯,同時編譯速度也是非常的快,可以跟Ninja持平。

官網:https://xmake.io/#/zh-cn/

Step1:安裝MSYS2

MSYS2是一個Windows平臺上的GNU/Linux-like環境,可以用於開發和除錯Unix/Linux軟體。MSYS2使用pacman軟體包管理器,可以方便地安裝和管理軟體包。它也提供了一個類似於Bash的shell,支援大多數Unix/Linux命令和工具。MSYS2還提供了交叉編譯工具鏈,可以方便地在Windows上編譯和構建Linux軟體。

直接到官網https://www.msys2.org/ 找到 installer下載,然後安裝到一個容易找到的路徑,比如我安裝到D:\msys2目錄下,接下來你就可以假想這個目錄是一個linux的根目錄。

安裝完成後的目錄差不多是這樣的:

MSYS2中又有多個子系統,我們用Mingw64就好。

Step2: 安裝XMake

接下來使用以下命令用pacman安裝XMake:

pacman -Sy mingw-w64-x86_64-xmake

安裝完成後,用xmake命令就可以使用xmake了。

如果提示xmake命令沒有找到,那就是環境變數的問題,用下面的方法來修改:
推薦在etc/profile.d裡新建一個env.sh,裡面寫

export \(PATH=\)PATH:D:/msys2/mingw64/bin

完事後用指令source /etc/profile來重新整理配置,再用echo $PATH來檢視環境變數是否新增成功。

為了在VS Code的終端中使用xmake命令,還需要將D:\msys2\mingw64\bin加入到Windows的環境變數中。

注意,這裡如果你發現改了環境變數,在vscode中還是不能用xmake命令,你需要重啟一下vscode......這是一個小坑,當時困惑了好久。

Step3: 執行Hello World

新建一個HelloWorld資料夾,在該資料夾下新建一個檔案xmake.lua,裡面編寫以下內容:

set_config("plat", "mingw")
set_config("sdk", "D:/msys2/mingw64")

target("HelloWorld")
-- 設定為二進位制檔案,也就是windows下的exe檔案
    set_kind("binary") 
-- 將src目錄下的所有cpp一起編譯
    add_files("src/*.cpp") 

src/HelloWorld.cpp中寫一個簡單的程式:

#include <iostream>

signed main()
{
    std::cout << "Hello, World!" << '\n';
    return 0;
}

然後在終端中執行命令(注意在專案根目錄執行):

xmake


構建完成後可以用xmake run直接執行,或自己用其他方法執行。二進位制檔案會儲存在build裡面,然後根據平臺進行分類。

相關文章