• XMake学习笔记(1):Windows(MSYS2)下MinGW-w64环境搭建和XMake安装


    以前写的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 
    
    signed main()
    {
        std::cout << "Hello, World!" << '\n';
        return 0;
    }
    

    然后在终端中执行命令(注意在项目根目录执行):

    xmake
    


    构建完成后可以用xmake run直接运行,或自己用其他方法运行。二进制文件会保存在build里面,然后根据平台进行分类。

  • 相关阅读:
    计算机组成原理学习笔记:海明校验码
    torch - FloatTensor标签(boolean)数值转换(1/0)
    Linux磁盘分配 把home的空间扩容给root
    如何免费下载RunWayML产生的视频文件
    Android界面开发基础
    搜一搜文章排名上首页无压力,优化这5点助你稳步上升
    搭建java部署环境以及部署Web项目到Linux
    使用ffmpeg解码音频sdl(push)播放
    并发模式之生产者消费者模式
    【wpf】Command Binding 命令绑定的使用
  • 原文地址:https://www.cnblogs.com/eriktse/p/17363730.html