xmake
常用命令
基本使用
xmake // 编译程序
xmake run // 运行程序
xmake install -y // 将当前编译好的程序安装到系统环境,默认位置/user/local下
xmake uninstall -y // 卸载安装程序;
基本命令介绍
xmake --help

xmake命令行格式为:
xmake [task] [options] [target]
[]
表示可选输入,task为子命令任务名,options为参数选项,target指的是当前命令针对那些目标程序;
常用子命令:
build
:程序构建;clean
:删除编译过程中的所有二进制文件和临时文件;config
:配置编译需要的参数,如平台、架构等,缩写用f
表示;global
:配置xmake的全局编译参数;install
:安装编译后的目标程序;package
:打包编译生成的库与头文件;require
:手动拉取第三方依赖库;run
:运行目标程序;uninstall
:卸载目标程序;update
:更新xmake;
build子命令:
-v/--verbose
:查看详细完整的编译命令。-r/--rebuild
:强制重新编译所有代码。-j/--jobs
:指定多任务编译的并行任务数。-w/--warning
:编译过程中显示编译警告信息。
xmake -rv // 查看详细编译选项
xmake f -m debug // 切换到debug模式、也可以切换release、releasedbg模式
xmake f -o /out // 切换编译输出目录
xmake f -v // 查看当前的配置信息
// --cflags 仅仅添加 C 编译选项,--cxxflags 为仅仅添加 C++ 编译选项,--cxflags 同时添加 C/C++ 编译选项。
xmake f --cxflags="-DTEST" // 仅仅添加C编译选项
// 添加链接库和搜索路径
xmake f --ldflags="-L/tmp -lpthread" // 表示新增 /tmp 的库搜索目录,并添加额外的 pthread 链接库
xmake f --links="pthread" --linkdirs="/tmp" // 与上面一行效果一样
xmake f --toolchain=clang // 切换到 clang 编译器,前提是安装了clang
xmake f -c // 重置所有配置
xmake update -f // xmake更新到最新版本
xmake show
显示的信息含义

xmake.lua基础配置
set_kind
:设置目标类型;phony 空目标程序、binary 二进制程序、static 静态库程序、shard 动态库程序;add_cxflags
:添加 C/C++ 编译选项;add_defines
:添加宏定义;add_includedirs
:添加头文件搜索目录;add_linkdirs
:添加库搜索目录;add_links
:添加链接库;add_syslinks
:添加系统链接库;set_languages
:设置语言标准;add_files
:添加源文件;中间用|
分割表示过滤的文件;add_requires()
:指定当前项目需要哪些包,编译时候会触发一次依赖包的安装;add_packages()
:配置对特定 target 目标集成指定的依赖包,需要与add_requires()
配合使用,二者缺一不可。
xrepo
常用命令
xrepo install zlib tbox # 安装包
xrepo install "zlib 1.2.x" # 安装指定版本包
xrepo install -p mingw [--mingw=/xxx] zlib # 安装指定平台包
xrepo install -m debug zlib # 安装调试版本包
xrepo install -k shared zlib # 安装动态库版本包
xrepo install -f "vs_runtime='MD'" zlib # 安装指定配置包
xrepo install vcpkg::zlib # 安装第三方包管理器的包
xrepo fetch pcre2 # 查找包的库使用信息
xrepo export -o /tmp/output zlib # 导出安装后的包
xrepo import -i /xxx/packagedir zlib # 导入安装后的包
xrepo search rabbitmq # 搜索支持的包
xrepo info zlib # 查看包信息
xrepo remove --all # 卸载所有包
xrepo remove --all zlib pcr* # 卸载所有包,模式匹配
# 进入虚拟环境:在当前目录下,添加 xmake.lua 文件,定制化一些包配置,然后进入特定的包虚拟环境。
{ xmake.lua 文件
add_requires("zlib 1.2.11")
add_requires("python 3.x", "luajit")
}
{ bash 命令行
$ xrepo env shell
> python --version
> luajit --version
}
xrepo env --show luajit # 查看包环境信息
xrepo env luajit # 加载执行包环境并运行命令
xrepo env --add /tmp/base.lua # 管理虚拟环境,将指定的虚拟环境配置全局注册到系统中,方便快速切换
xrepo env --list # 查看虚拟环境
xrepo env --remove base # 删除虚拟环境
xrepo env -b base shell # 切换全局虚拟环境
xrepo env -b/--bind # 绑定指定的虚拟环境