CMake error “Can not find target to add properties

2019-05-05 17:46发布

问题:

In my CMakeLIsts.txt file I write this:

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})

When I run cmake, it shows the error message:

set_target_properties Can not find target to add properties to: hello_static

回答1:

For your code to work, hello_static must be the name of a CMake target; something which is added via the add_executable or add_library commands for example.

This is unrelated to the name of your project.

It looks like you're missing something like:

add_library(hello_static ${LIBHELLO_SRC})

which would be placed immediately after

set(LIBHELLO_SRC hello.c)


回答2:

Try this:

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})

This works for me.

But if you just want a "hello" executable. you can reduced this to:

project(hello_static)
set(LIBHELLO_SRC hello.c)
add_executable(hello ${LIBHELLO_SRC})


标签: cmake