【问题标题】:CMAKE include_directoriesCMAKE 包含目录
【发布时间】:2011-11-19 08:49:30
【问题描述】:

我正在尝试使用 CMAKE 2.8 将我的库与其他库 lib1 链接。应该说是在Windows上的。

在CMakeLists.txt 我有:

add_library(mylib ${sources})
include_directories(${CMAKE_SOURCE_DIR}/lib1/include)
target_link_libraries(mylib ${lib1_path})

但是编译器说我的库中的一些#include <lib1/foo.h> 未解析,可能是因为gcc 没有-I.../lib1/include 命令行参数。

更新:应该说编译器在编译TESTS时抱怨不是mylib。

【问题讨论】:

    标签: c++ c gcc cmake


    【解决方案1】:

    检查以下内容:

    1. 路径${CMAKE_SOURCE_DIR}/lib1/include/lib1/foo.h是否存在?

    2. 引用(")传递给include_directories的路径,否则你可能会传递多个路径,当它被空格分割时

    3. 尝试运行 make VERBOSE=1 以查看传递给 gcc 的确切选项

    【讨论】:

      【解决方案2】:

      尝试将 include_directories() 调用移到 add_library 之前。

      add_library() 指示 CMake 使用当前的编译器标志集将您的源代码编译到库中。编译后更改这些标志没有任何效果。 CMake 语言不是声明性的。

      【讨论】:

      • 它没有帮助:-(使用mylib的测试仍然不知道lib1。
      • 它应该有帮助...我想我们需要更多信息来弄清楚发生了什么。您没有在问题中提及任何 test 。与测试相关的 CMakeLists 代码是什么样的?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多