专栏首页TBOOX开源工程xmake从入门到精通1:安装和更新

xmake从入门到精通1:安装和更新

xmake是一个基于Lua的轻量级现代化c/c++的项目构建工具,主要特点是:语法简单易上手,提供更加可读的项目维护,实现跨平台行为一致的构建体验。

本文主要详细讲解xmake在各个平台下的安装过程。

  • 项目源码
  • 官方文档

安装Master版本

通常情况下我们只需要通过一键安装脚本即可完成安装。

使用curl

bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh)

使用wget

bash <(wget https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh -O -)

使用powershell

Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content

注:如果ps脚本执行提示失败,可以尝试在管理员模式下执行

安装Windows版本

使用安装包

windows下提供了预制的nsis安装包,我们可直接从github的Releases下载页面下载后,运行安装包即可。

  1. 从 Releases 上下载windows安装包
  2. 运行安装程序 xmake-[version].exe

使用scoop

scoop install xmake

MacOS

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install xmake

或者:

  1. 从 Releases 上下载pkg安装包
  2. 双击运行

或者安装master版本:

# 使用homebrew安装master版本
$ brew install xmake --HEAD

# 或者直接调用shell下载安装
$ bash <(curl -fsSL https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.sh)

Linux

在archlinux上安装:

$ yaourt xmake

或者下载deb包来安装:

  1. 从 Releases 上下载deb安装包
  2. 运行: dpkg -i xmake-xxxx.deb

Termux

最新版本的xmake已经很好地支持了termux,而我们也通常只需要执行上面的一键安装脚本即可,如果失败,可参考下文自己拉取源码编译安装。

源码编译安装

安装

注:切记,xmake不建议在root下安装,所以尽量不要在root下拉取源码编译安装!

$ git clone --recursive https://github.com/xmake-io/xmake.git
$ cd ./xmake
$ ./scripts/get.sh __local__
$ source ~/.xmake/profile

如果觉得github的源太慢,可以通过gitee的镜像源拉取:clone --recursive https://gitee.com/tboox/xmake.git

注:由于目前xmake源码通过git submodule维护依赖,所以clone的时候需要加上--recursive参数同时拉取所有submodules代码,请不要直接下载tar.gz源码,因为github不会自动打包submodules里面的代码。

如果git clone的时候忘记加--recursive,那么也可以执行git submodule update --init来拉取所有submodules,例如:

$ git clone https://github.com/xmake-io/xmake.git
$ cd ./xmake
$ git submodule update --init
$ ./scripts/get.sh __local__

注:./get.sh __local__是安装到~/.local/xmake下,然后通过source ~/.xmake/profile方式来加载的,所以安装完,当前终端如果执行xmake失败,提示找不到,就手动执行下 source ~/.xmake/profile,而下次打开终端就不需要了。

卸载

$ ./scripts/get.sh __uninstall__

仅仅更新安装lua脚本

这个开发者本地调试xmake源码才需要:

$ ./scripts/get.sh __local__ __install_only__

root下安装

xmake不推荐root下安装使用,因为这很不安全,如果用户非要root下装,装完后,如果提示xmake运行不了,请根据提示传递--root参数,或者设置XMAKE_ROOT=y环境变量强行启用下,前提是:用户需要随时注意root下误操作系统文件文件的风险。

依赖问题

  1. 如果遇到readline相关问题,请装下readline-devel或者libreadline-dev依赖,这个是可选的,仅仅xmake lua命令执行REPL时候才需要。
  2. 如果想要提速编译,可以装下ccache,xmake会自动检测并使用,这也是可选的。

其他安装方式

注:这种也是源码编译安装,但是安装路径会直接写入/usr/下,需要root权限,因此除非特殊情况,不推荐这种安装方式,建议采用上文提供的./get.sh __local__方式来安装,这两种安装方式的安装路径是不同的,不要混用。

通过make进行编译安装:

$ make build; sudo make install

安装到其他指定目录:

$ sudo make install prefix=/usr/local

卸载:

$ sudo make uninstall

更新升级

从v2.2.3版本开始,新增了xmake update命令,来快速进行自我更新和升级,默认是升级到最新版本,当然也可以指定升级或者回退到某个版本:

$ xmake update 2.2.4

我们也可以指定更新到master/dev分支版本:

$ xmake update master
$ xmake update dev

从指定git源更新

$ xmake update github:xmake-io/xmake#master
$ xmake update gitee:tboox/xmake#dev # gitee镜像

如果xmake/core没动过,仅仅更新xmake的lua脚本改动,可以加-s/--scriptonly快速更新lua脚本

$ xmake update -s dev

最后,我们如果要卸载xmake,也是支持的:xmake update --uninstall

本文分享自微信公众号 - TBOOX开源工程(tboox-os),作者:waruqi

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • xmake-gradle 首发, 集成xmake快速构建Android JNI程序

    目前在 gradle 中做 android jni 相关集成开发,有两种方式,通过 ndkBuild 或者 CMake 来支持,gradle 也内置了这两工具的...

    ruki
  • xmake v2.3.1 发布, 无缝对接其他构建系统

    疫情期间,宅家两月,对xmake内部做了不少的重构来改进,并且新增了不少实用的新特性,欢迎来体验。

    ruki
  • xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更...

    ruki
  • xmake-gradle 首发, 集成xmake快速构建Android JNI程序

    目前在 gradle 中做 android jni 相关集成开发,有两种方式,通过 ndkBuild 或者 CMake 来支持,gradle 也内置了这两工具的...

    ruki
  • xmake v2.3.1 发布, 无缝对接其他构建系统

    疫情期间,宅家两月,对xmake内部做了不少的重构来改进,并且新增了不少实用的新特性,欢迎来体验。

    ruki
  • xmake v2.3.5 发布, 多工具链灵活切换支持

    这个版本主要工作还是继续改进对工具链的支持,上个版本虽然通过重构实现了模块化的工具链扩展,但是对于一次编译想要灵活地在交叉工具链/Host工具链上切换编译,还不...

    ruki
  • (七)Hive总结

    Hive 和数据库除了拥有类似的查询语言,再无类似之处。 1)数据存储位置 Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。 2...

    wolf
  • 12示例 Dockerfile

    示例 Dockerfile 犯了几乎所有的错(当然我是故意的)。接下来,我会一步步优化它。假设我们需要使用 Docker 运行一个 Node.js 应用,下面...

    用户2988975
  • 用Python使用C语言程序(Windows平台)

    前言 在机器学习中,很多时候我们需要Python和C的混合编程,最重要的原因是为了性能效率的提升: 解释型语言一般比编译型语言慢,一般提高性能的有效做法是,先做...

    用户1332428
  • 一次奇幻太空之旅背后的故事 ——腾讯设计周IBG展位设计总结

    | 导语 一年一度的腾讯设计周(TDW)终于落幕,代表公司征战星辰大海的IBG国际业务部在创意集市上的展现一定给你留下过深刻的印象。这个展位是如何设计出来的?背...

    Shawn.W

扫码关注云+社区

领取腾讯云代金券