在我的CMakeLIsts.txt文件中,我写了这个:
set(LIBHELLO_SRC hello.c)
set_target_properties(hello_static PROPERTIES OUTPUT_NAME "hello")
get_target_property(OUTPUT_VALUE hello_static OUTPUT_NAME)
message(STATUS "This is the hello_static OUTPUT_NAME:"${OUTPUT_VALUE})
当我运行cmake
时,会显示错误消息:
set_target_properties Can not find target to add properties to: hello_static
答案 0 :(得分:6)
要使代码生效,hello_static
必须是CMake目标的名称;例如,通过add_executable
或add_library
命令添加的内容。
这与您的项目名称无关。
您似乎错过了以下内容:
add_library(hello_static ${LIBHELLO_SRC})
将在
之后立即放置set(LIBHELLO_SRC hello.c)
答案 1 :(得分:0)
试试这个:
project(hello_static)
set(LIBHELLO_SRC hello.c)
add_executable(hello_static ${LIBHELLO_SRC})
set_target_properties(hello_static PROPERTIES OUTPUT_NAME "hello")
get_target_property(OUTPUT_VALUE hello_static OUTPUT_NAME)
message(STATUS "This is the hello_static OUTPUT_NAME:"${OUTPUT_VALUE})
这适合我。
但是如果你只想要一个“你好”的可执行文件。你可以把它减少到:
project(hello_static)
set(LIBHELLO_SRC hello.c)
add_executable(hello ${LIBHELLO_SRC})