【发布时间】:2017-02-01 10:52:57
【问题描述】:
我有一个使用 google 日志库 (glog) 的库 A.dll。现在我想在另一个项目中使用这个库,在我自己的项目中我不想使用 glog。我只想使用A.dll,但是在编译过程中,编译器说找不到logging.h头!!!
为什么会这样?!它是 A.dll 内部使用的标头,我想使用 A 的接口而不是 glog。我认为包含 A.h 就足够了,我不需要 logging.h 。我错了吗?知道是什么问题吗?
A.dll 是使用 MSVC++ 2015 构建的,我在 QT Creator 中使用的是 MSVC++ 2015。
【问题讨论】:
-
如果 A.dll 依赖于另一个库,那么如果不重建 A.dll 以使其在没有该依赖项的情况下工作,您根本无法消除该依赖项。
-
我有 glog 库并已配置我的项目以查找 glog dll。我有 logging.h 和所有其他 glog 标题。但我的问题是为什么编译器在我的项目中需要 glog 头文件?
-
可能其中一个A.dll头文件需要它?
-
@Someprogrammerdude : 是的,这很明显,但是它的内部使用需要 glog,日志记录不在 A 的接口中。客户端代码是否需要库代码中使用的所有标头?我不这么认为。
-
因为头文件包含函数的原型,一些全局变量,而库有定义,所以你只包含这些头文件并链接到这些库。
标签: c++ visual-c++ dll header-files glog