2021-11-27 有关项目编译的学习 Xmake -1- 安装

学习C++,遇到不少的编译问题,用gcc工具链和mingw工具链,如果有多文件项目,编译是个大问题。

所以最近学习了一下 Xmake,这个确实是国人开发的项目编译之光,对我来说,太有吸引力。

有原生中文文档,基于lua生成xmake file,容易看懂。

把复杂的事情简单化,很牛。

安装:

在windows系统下,我用msys2管理工具,可直接 " pacman -Ss xmake "

//查包
$ pacman -Ss xmake
mingw32/mingw-w64-i686-xmake 2.5.9-1
    A cross-platform build utility based on Lua (mingw-w64)
mingw64/mingw-w64-x86_64-xmake 2.5.9-1 [installed]
    A cross-platform build utility based on Lua (mingw-w64)
ucrt64/mingw-w64-ucrt-x86_64-xmake 2.5.9-1
    A cross-platform build utility based on Lua (mingw-w64)
clang64/mingw-w64-clang-x86_64-xmake 2.5.9-1
    A cross-platform build utility based on Lua (mingw-w64)

//完成安装
$ pacman -S mingw-w64-x86_64-xmake

我的Linux系统是通过wsl2虚拟的Debian,没有现成的apt安装包,只能网站下载deb安装包:


https://github.com/xmake-io/xmake/releases
xmake-v2.5.9.amd64.deb
//安装
dpkg -i xmake-xxxx.deb

如果是Ubuntu 可以


sudo apt-get install software-properties-common
sudo add-apt-repository ppa:xmake-io/xmake
sudo apt update
sudo apt install xmake

我是用vscode,可以简单的配合xmake,因为有插件,在vscode的应用商店插件扩展搜素xmake,下载即可。

xmake的配置,在xmake扩展选项或在settings.json中设置:

我在window+mingw下的配置:

//--cxx=g++ 编译器为g++
//--plat=mingw 平台为mingw
//--arch=x86_64 处理器架构为x86_64
    "xmake.additionalConfigArguments": "--cxx=g++ --plat=mingw --arch=x86_64 ",
    "xmake.workingDirectory": "${workspaceRoot}/project/",
    "xmake.buildDirectory": "${workspaceRoot}/project/build",
    "xmake.compileCommandsDirectory": "${workspaceRoot}/.vscode",

Debian+gcc下的配置:

    "xmake.additionalConfigArguments": "--cxx=g++ --plat=linux --arch=x86_64 ",
    "xmake.workingDirectory": "${workspaceRoot}/project/",
    "xmake.buildDirectory": "${workspaceRoot}/project/build",
    "xmake.compileCommandsDirectory": "${workspaceRoot}/.vscode",

使用的时候非常简单,在vscode中设置一个project文件夹,

把项目文件都移到这个文件夹下,

按F1,调出命令面板, 输入xmake 选择install,

xmake会自动搜索构建编译环境文件,

并要求新建一个xmake.lua文件,用于手动调整编译参数,添加include地址,lib地址,lib文件,cxxflag等等。

add_rules("mode.debug", "mode.check") //添加规则,debug是用于gdb调试,
                                      //check是用于sanitize内存检测
target("deletePtr")          //生成文件
    set_kind("binary")       //文件类型,二进制可执行文件
    add_files("deletePtr.cpp")  //原文件名
    add_cxxflags("-fsanitize=address","-ftrapv")  //内存检测编译参数
    add_ldflags("-fsanitize=address")             //内存检测连接参数

就这样吧, 然后F1 xmake build, 愉快的看着终端中的构建过程,

大概可以80%的工作交由xmake完成,

有疑问可以参考官方文档, 要深入研究还是有挺多东西要学习的, 比如依赖管理, 这个大坑.

https://xmake.io/#/zh-cn/guide/installation

你可能感兴趣的:(笔记,c++,vscode)