关于c++:XMake学习笔记1WindowsMSYS2下MinGWw64环境搭建和XMake安装

0次阅读

共计 1898 个字符,预计需要花费 5 分钟才能阅读完成。

以前写的 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 外面,而后依据平台进行分类。

正文完
 0