Cmake将命令行参数添加到二进制

时间:2016-02-25 22:47:38

标签: linux binary cmake command-line-arguments

我通过cmake / CMakeLists.txt创建二进制文件myBinary

我想在我的二进制文件中“包含”默认选项。

换句话说,即使我只是运行myBinary --option myopt

,我希望使用./myBinary调用我的二进制文件

我该怎么做?

2 个答案:

答案 0 :(得分:1)

CMake没有您想要的内置支持。

一个解决方案就是像@Youka所说的那样 - 更改程序的源代码。

我有时使用的另一个解决方案是自动生成执行可执行文件的脚本:

# Create startup script
MACRO(GEN_START_SCRIPT binName)
    # Generate content
    SET(fileContent
        "#!/bin/bash\n"
        "\n"
        "# This startup script is auto generated - do not modify!\n"
        "\n"
        "${binName} -a 23 -b 34 -c 976\n"
        "\n"
    )

    # Write to file
    SET(fileName ${CMAKE_CURRENT_BINARY_DIR}/${binName}.sh)
    FILE(WRITE ${fileName} ${fileContent})
ENDMACRO()

然后在定义可执行文件后调用宏:

ADD_EXECUTABLE(myBinary file1.c file.2)
GEN_START_SCRIPT(myBinary)

您当然可以在脚本中添加其他内容,例如环境变量等。

答案 1 :(得分:0)

如果您可以控制来源并且想要不同的默认行为...更改来源!

这绝不是构建系统问题(CMake 或其他)。