cmake ADD_EXECUTABLE 无法设置“../bin/xxx”
cmake ADD_EXECUTABLE cannot set "../bin/xxx"
我运行在路径“${PROJECT_NAME}/build”中生成可执行文件,我想在“${PROJECT_NAME}/bin”中生成可执行文件而不是“ ${PROJECT_NAME}/build".
当我使用“ADD_EXECUTABLE(../bin/${PROJECT_NAME} ${sources})”时,我得到了错误:
目标名称“../bin/xxxx”保留或对某些 CMake 功能无效,例如生成器表达式,并且可能导致未定义的行为。
然后我改成“ADD_EXECUTABLE(${PROJECT_NAME} ${sources})”,通过了,但是生成在“${PROJECT_NAME}/build” .
我能做什么?
尝试使用自定义命令 post 构建来复制可执行文件:
set(COPY_TO_PATH ${PROJECT_NAME}/bin)
add_custom_command(TARGET xxx POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_NAME}/bin/xxx
${COPY_TO_PATH})
add_executable
,以及 add_library
和 target_include_directories
等其他函数需要目标名称,而不是路径。
要更改输出文件的位置,建议您更改每个目标的一些属性
set_target_properties(my_target PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../bin"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../bin"
还有一些属性可以控制图书馆和档案馆的去向:LIBRARY_OUTPUT_DIRECTORY
和 ARCHIVE_OUTPUT_DIRECTORY
,您也可以将它们设置为其他内容
我运行在路径“${PROJECT_NAME}/build”中生成可执行文件,我想在“${PROJECT_NAME}/bin”中生成可执行文件而不是“ ${PROJECT_NAME}/build".
当我使用“ADD_EXECUTABLE(../bin/${PROJECT_NAME} ${sources})”时,我得到了错误: 目标名称“../bin/xxxx”保留或对某些 CMake 功能无效,例如生成器表达式,并且可能导致未定义的行为。
然后我改成“ADD_EXECUTABLE(${PROJECT_NAME} ${sources})”,通过了,但是生成在“${PROJECT_NAME}/build” .
我能做什么?
尝试使用自定义命令 post 构建来复制可执行文件:
set(COPY_TO_PATH ${PROJECT_NAME}/bin)
add_custom_command(TARGET xxx POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
${PROJECT_NAME}/bin/xxx
${COPY_TO_PATH})
add_executable
,以及 add_library
和 target_include_directories
等其他函数需要目标名称,而不是路径。
要更改输出文件的位置,建议您更改每个目标的一些属性
set_target_properties(my_target PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../bin"
PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/../bin"
还有一些属性可以控制图书馆和档案馆的去向:LIBRARY_OUTPUT_DIRECTORY
和 ARCHIVE_OUTPUT_DIRECTORY
,您也可以将它们设置为其他内容