【问题标题】:How can known, where is binary compiled?怎么知道,二进制是在哪里编译的?
【发布时间】:2016-05-12 13:38:23
【问题描述】:

我能找到 add_executable 创建的二进制文件放在哪里吗?

我有许多 CMakeLists - 每个二进制文件和另一个,我包括项目的所有部分。

当我执行 cmake -D CMAKE_BUILD_TYPE=Release path/to/project 时,将所有二进制文件存储到目录中,其中它们的 CMakeList (每个到不同的位置)。

另一方面,当我使用一些没有 CMAKE_BUILD_TYPE 的命令时,所有二进制文件都被放入当前目录。你能解释一下为什么吗?

我需要运行一些二进制文件,因为它的输出也是包的一部分。我们怎么知道这些路径?

【问题讨论】:

  • 您使用的是什么主机环境和工具链?你做源内还是外源构建?如果您想在一个目录中获取所有可执行文件,您可以设置CMAKE_RUNTIME_OUTPUT_DIRECTORY
  • 抱歉各位,问题出在某个人设置的 CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE/DEBUG 文件中。

标签: build cmake


【解决方案1】:

如果您希望二进制输出具有可预测的位置,请设置 RUNTIME_OUTPUT_DIRECTORY 目标属性。

另一方面,如果您只想在构建期间使用add_custom_command 在内部运行它们,那么您只需将目标名称放在命令中,CMake 将替换实际路径。在其他接受生成器表达式的上下文中,您也可以使用$<TARGET_FILE_NAME:target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    相关资源
    最近更新 更多