c++ - 尝试获取目标链接库信息时获取属性返回空变量

标签 c++ cmake

我在 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 属性:

http://www.cmake.org/cmake/help/v3.0/manual/cmake-properties.7.html?highlight=properties%20targets#properties-on-directories

此外,我认为 target_link_libraries 只会影响调用它的目标,而不影响目录。尝试使用 get_target_property相反。

关于c++ - 尝试获取目标链接库信息时获取属性返回空变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26299540/

相关文章:

c++ - STL中map和hashmap有什么区别

c++ - 关于波特词干算法的困惑

c++ - Qt5 和 CMAKE_AUTORCC

opencv - QT Creator 链接与命令行不同的库

cmake - 多个子项目依赖于同一个库

c++ - 如何在 C++ 中使用 POCO 从多个线程打印到标准输出

c++ - 为什么 std::string 不采用空指针?

CMake - 添加对其他项目的依赖项

cmake - OBJECT 库上的可传递 target_include_directories

c++ - 显式调用基类析构函数/构造函数是否合法?