CMake error “Can not find target to add properties

2019-05-05 17:31发布

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

标签: cmake
2条回答
可以哭但决不认输i
2楼-- · 2019-05-05 18:07

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})
查看更多
戒情不戒烟
3楼-- · 2019-05-05 18:16

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)
查看更多
登录 后发表回答