📜  xmake 使用 arg 运行 - C++ (1)

📅  最后修改于: 2023-12-03 15:21:18.688000             🧑  作者: Mango

xmake 使用 arg 运行 - C++

介绍

xmake 是一款简单易用,高效可靠的跨平台 C/C++ 构建工具,它支持 Windows、MacOS、Linux 等主流操作系统,并可轻松集成各种编译器、库和插件。xmake 对开发者而言,使用简单方便,而且能够迅速构建项目,提升开发效率。

arg 是 xmake 的命令行解析工具,可以方便快捷地解析命令行参数。它是一个轻量级的解析器,能够处理常见的格式,如选项、布尔值、数值等,并且支持嵌套定义选项,从而实现更为复杂的命令行参数解析。

在本文中,我们将介绍如何在 xmake 项目中使用 arg 解析命令行参数,以便更为灵活地运行程序。

安装

安装 xmake 和 arg 非常简单,只需在终端中输入以下命令:

$ curl -fsSL https://raw.githubusercontent.com/xmake-io/xmake/master/scripts/get.sh | bash
$ xmake require -y arg

其中,第一条命令是安装 xmake,第二条命令是安装 arg。

使用

下面将介绍如何在 xmake 项目中使用 arg 解析命令行参数。假设我们有一个 C++ 程序,需要从命令行读入一个参数,并根据不同的参数值执行不同的操作。

首先,在项目的根目录下创建一个 xmake.lua 文件,用以描述项目的构建过程。在该文件中,我们需要添加如下代码:

add_rules("mode.debug", "mode.release")

target("program")
    set_kind("binary")
    add_files("src/*.cpp")

    on_run(function (target)
        local argv = os.argv()

        -- TODO: 解析命令行参数并执行相应的操作
        if #argv == 2 then
            print("Hello, " .. argv[2] .. "!")
        else
            print("Usage: xmake run program xxx")
        end
    end)

其中,

  • add_rules("mode.debug", "mode.release") 指定了构建时使用的构建模式,这里我们分别指定了 debug 模式和 release 模式。

  • target("program") 指定了程序的名称,我们将其命名为 program。

  • set_kind("binary") 指定了编译生成的文件类型,这里是二进制文件。

  • add_files("src/*.cpp") 指定了需要编译的源代码文件,这里是 src 目录下的所有 .cpp 文件。

  • on_run 是一个回调函数,其参数 target 表示当前目标对象,函数体中的代码将在运行程序时被执行。在本例中,我们使用 os.argv() 获取命令行参数,并通过 if-else 语句判断参数数量。当参数数量为 2 时,输出 Hello, xxx!;否则,输出使用说明。

然后,在 src 目录下创建一个 main.cpp 文件,代码如下所示:

#include <iostream>

int main(int argc, char *argv[])
{
    std::cout << "Hello, world!" << std::endl;

    return 0;
}

该程序将输出 Hello, world!。

现在,我们可以编译并运行程序了。在终端中输入以下命令:

$ xmake run program xxx

其中,xxx 是命令行参数。如果输入命令行参数,则程序会输出 Hello, xxx!;否则,会输出使用说明。

至此,我们已经成功地在 xmake 项目中使用 arg 解析命令行参数,实现了更为灵活的运行程序方式。