【发布时间】:2020-09-15 06:31:32
【问题描述】:
我有一个预编译的依赖库 A,它只有 include/ 和 lib/
A 使用系统库B 构建,安装在/usr/local/include/B/ 和/usr/local/lib/B 中
但是在我的构建系统上没有库B 并且不允许我修改系统(没有特权)。
我下载了B并将B_include放入本地项目C的include目录,将B_lib放入C的lib目录。
我在本地项目的CMakeList.txt 中试过:
include_directories(
C_INCLUDE_DIR
B_INCLUDE_DIR
)
link_directories(
C_LIB_DIR
B_LIB_DIR
)
但是当针对库A编译C时,A的include找不到本地头文件B_INCLUDE_DIR。除了直接导航到系统include 和lib 目录之外,有谁知道如何强制 CMake 查找本地库文件?
总结一下,我可以告诉CMake强制预编译库使用本地include文件吗?
【问题讨论】:
-
"但它不起作用"...这是一个非常模糊的问题描述。您能否描述如何它不起作用,包括任何相关的错误消息或不良行为。此外,看起来question 的地址与您所要求的内容非常相似。具体来说,
link_directories()实际上并没有链接库,它只是为链接器提供了一个额外的路径用于库搜索。