C++ 获取cmake可执行路径以在自定义命令上运行它
我正在使用C++ 获取cmake可执行路径以在自定义命令上运行它,c++,cmake,C++,Cmake,我正在使用add_executable(foo sources.cpp)创建一个可执行文件,然后我希望有一个运行foo的目标,所以现在我正在执行以下操作: add_custom_target(run_foo COMMAND ${CMAKE_BINARY_DIR}/test/foo DEPENDS foo WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} ) 它现在可以工作了,但我觉得我在“COMMAND”中硬编码二进制文件的路径是错误的。难道没
add_executable(foo sources.cpp)
创建一个可执行文件,然后我希望有一个运行foo的目标,所以现在我正在执行以下操作:
add_custom_target(run_foo
COMMAND ${CMAKE_BINARY_DIR}/test/foo
DEPENDS foo
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
它现在可以工作了,但我觉得我在“COMMAND”中硬编码二进制文件的路径是错误的。难道没有办法从foo
获取二进制文件的路径吗?添加自定义目标(命令$…)
add_custom_target(COMMAND $<TARGET_FILE:foo> ...)
见:
事实上,您甚至不需要生成器表达式:) 至少/w: 如果命令指定了一个可执行目标名称(由add_executable()命令创建),则该名称将自动替换为生成时创建的可执行文件的位置
add_executable(foo ...)
add_custom_target(COMMAND foo ...)