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 # 绑定指定的虚拟环境