使用xmake编译C/C++项目
原来习惯了在Windows下使用cmake+vcpkg编译C/C++程序,但是vcpkg有个缺点,每次更新都需要从github下载源码编译库文件。像qt那样的大型库,每次光是编译动不动就浪费一整天时间实在耗不起,更别说DNS导致的连接问题了。
先梳理下需求,对C/C++包管理器的要求主要以下3点:
- 支持gtk+、qt、wxWidgets、cgal、vtk等常用库。
- 支持跨平台和IDE集成,或者支持CMake。
- 及时更新。
能满足条件的除了vcpkg就只剩xrepo了。 xrepo是xmake自带的包管理器,xmake1是一个新兴的C/C++构建工具。这篇文章尝试使用xmake+repo替代cmake+vcpkg,看能否满足现阶段C/C++程序的编译需求。
1. 安装xmake
按照官方文档2的指导,这里用posershell命令直接下载安装:
irm https://xmake.io/psget.text | iex
在Windows下执行以上命令,自动安装在C:\Users\[用户名]\xmake路径下。
也可以使用其他方式安装,比如直接从Release 页面下载对应平台的安装包手动安装。
安装完xmake之后xrepo就可以使用了,查看xmake、xrepo的版本:
xmake --version
xrepo --version
vscode可以安装以下拓展,用于查看和构建xmake项目。
- XMake - vscode的xmake项目支持插件
- vscode-lua-format - lua代码格式化工具,可选
2. 创建项目
可以直接使用xmake的create命令创建项目,默认为C++项目。
xmake create hello_cpp
也可以增加-l开关指定项目的语言类型。
xmake create -l c hello_c
打开hello_c项目自动生成的xmake.lua文件,后面一大段注释告诉用户怎么配置、构建和安装项目。直接在项目文件夹中执行xmake命令即可编译。
使用vscode安装了拓展的话,也可以通过下方的按钮执行编译命令。