将库链接到仅标头的库

问题描述

我有两个图书馆:

  • a;
  • b:仅用于标头的库,它依赖于a

我不确定是否可以将b链接a。 如果是这样,我该怎么办?

实际上,我有第三个库c都依赖于两者。此CMake脚本不起作用:

[...]

add_library(a ${a_SRC})
target_link_libraries(a CONAN_PKG::<foo>)

add_library(b INTERFACE)
target_sources(b INTERFACE ${b_SRC})
target_include_directories(b INTERFACE "${PROJECT_SOURCE_DIR}/src/include/b/")
target_link_libraries(b INTERFACE a) # This has no effect,I think!

add_executable(c ${c_SRC})
target_link_libraries(c b a)

我使用了一种变通方法,即将a的源文件添加c的定义中。


[...]
add_executable(c ${c_SRC} ${a_SRC})
[...]

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)