2016-05-12 42 views
-1

我能以某种方式找到放置在add_executable中的二进制文件的位置吗?如何知道,二进制编译在哪里?

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

当我执行的cmake -D CMAKE_BUILD_TYPE =释放路径/要/项目,不是让店内所有的二进制文件到目录中,其中他们的CMakeList(每个不同的地方)。

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

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

+0

你使用的是什么主机环境和工具链?你是在做源代码还是在源代码之外?如果您想要在一个目录中获取所有可执行文件,您可以设置['CMAKE_RUNTIME_OUTPUT_DIRECTORY'](https://cmake.org/cmake/help/latest/variable/CMAKE_RUNTIME_OUTPUT_DIRECTORY.html)。 – Florian

+0

对不起家伙,问题是在文件中的某个地方设置CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE/DEBUG。 – lofcek

回答

0

如果要为二进制输出具有可预测的位置,请设置RUNTIME_OUTPUT_DIRECTORY目标属性。另一方面,如果您只想在构建过程中使用add_custom_command在内部运行它们,那么您可以将目标名称放在命令中,CMake将替换实际路径。在接受生成器表达式的其他上下文中,还可以使用$<TARGET_FILE_NAME:target>