我在 CMake 中有一些调试信息来检查我是否添加了编译项目所需的信息。这段代码正常工作:
# Include DIRECTORIES
GET_PROPERTY(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
FOREACH(dir ${dirs})
MESSAGE(STATUS " * Include directory: '${dir}'")
ENDFOREACH()
但是当我尝试检查当前项目中链接的所有库时,我得到一个空变量:
# Linking against
GET_PROPERTY(libtargets DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY LINK_LIBRARIES)
MESSAGE("Libs: ${libtargets}")
FOREACH(libtarget ${libtargets})
MESSAGE(STATUS " * Target Link library: '${libtarget}'")
ENDFOREACH()
正在检查 CMake documentation 3.0看起来不错,但我不知道有哪些值可供阅读。我 AFTER 打印信息 make ADD_LIBRARY
/ADD_EXECUTABLE
LINK_LIBRARIES
是否为 GET_PROPERTY
的错误值?我怎样才能得到这些信息?
最佳答案
根据此页面,目录没有 LINK_LIBRARIES
属性:
此外,我认为 target_link_libraries
只会影响调用它的目标,而不影响目录。尝试使用 get_target_property
相反。
关于c++ - 尝试获取目标链接库信息时获取属性返回空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26299540/