【发布时间】:2013-07-07 10:08:51
【问题描述】:
我有不少这样的库:
libs
\lib1-- src
\- include
\lib2--src
\- include
其中 lib2 需要 lib1。我这样做的方法是做这样的事情:
lib2/CMakeLists.txt:
include ../lib1/include
target_link_libraries(lib2 lib1)
如何在 lib2 库中包含 lib1 头文件/包含文件? 我目前正在尝试执行此操作,但在编译过程中出现 lib2 找不到 lib1 头文件的错误。
libs/CMakeLists.txt:
file(GLOB lib1_src
"lib1/src/*.cc"
)
#header files
file (GLOB lib1_h
"lib1/include/*.h"
)
file(GLOB lib2_src
"lib2/src/*.cc"
)
#header files
file (GLOB lib2_h
"lib2/include/*.h"
)
add_library(lib1 ${lib1_src} ${lib1_h})
add_library(lib2 ${lib2_src} ${lib2_h})
target_link_libraries(lib2 lib1)
我可以通过将 include_directories(lib1/include) 添加到 libs/CMakeLists.txt 来使其工作,但我已经到了一个库需要 3 个其他库的地步,每个库需要 3 个其他库,等等,这变得非常乏味。
【问题讨论】:
-
是否存在 libA/include 的标头与 libB/include 同名但内容不同的情况?
-
酷,那么我建议的(现在已接受,谢谢)解决方案应该可以正常工作。
标签: c++ c compilation cmake