所以我有一个bash脚本,它用CMake构建了我的项目,我想在构建之后运行这个程序。问题是,可执行文件的名称和路径可能会根据CMakeLists.txt而改变。有没有一种方法可以从外部脚本中获取上一次构建的可执行文件的位置?我不想硬编码。我试着在网上搜索IDE的功能,但什么也找不到。
a1o7rhls1#
最后,我使用cmake --build --target help获取所有目标并grepped可执行目标的名称。只要我不在CMakeLists.txt中手动更改它,我就可以从中猜测可执行文件的路径。不是最好的解决方案,但它足够满足我的需求。
cmake --build --target help
mu0hgdu02#
至少有两种方法:
$<TARGET_FILE:tgt>
$<CONFIG>
CMAKE_RUNTIME_OUTPUT_DIRECTORY
2条答案
按热度按时间a1o7rhls1#
最后,我使用
cmake --build --target help
获取所有目标并grepped可执行目标的名称。只要我不在CMakeLists.txt中手动更改它,我就可以从中猜测可执行文件的路径。不是最好的解决方案,但它足够满足我的需求。mu0hgdu02#
至少有两种方法:
$<TARGET_FILE:tgt>
的值回显到一个文件中(或者回显到一个特定于$<CONFIG>
的文件(使用$<CONFIG>
),或者满足于这样一种情况,即文件被覆盖为您上次构建的任何需要更新该目标的配置(实际上不是一个很好的场景,但对您的脚本来说更简单))CMAKE_RUNTIME_OUTPUT_DIRECTORY
,多配置生成器仍将向路径附加一个特定于路由器的部分)。