以前寫的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里面,然后根據平臺進行分類,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/551485.html
標籤:其他
上一篇:安裝Python
下一篇:返回列表