【发布时间】:2018-12-11 23:26:35
【问题描述】:
我创建了一个包含一些 .h 文件的静态库,并且需要将该库包含到我的第二个项目中,该项目也将作为库输出。将第一个 .lib 文件复制到当前项目源文件夹后,将其添加(可能是多余的)作为 Additional Dependencies Directory 并将 .lib 文件本身添加为 Additional Dependency,我明白了
cannot open source file "Person.h"
当我尝试编译它时出现错误输出,尽管有
#include "Person.h"
在我目前正在处理的.h 文件中。我错过了什么?
编辑:我已经在 Additional Include Directories 下添加了原始项目的源文件夹,它似乎可以工作,但我很困惑 - 这对我使用预制的 @987654327 有什么帮助@ 文件,如果我只是引用另一个项目的标头?
编辑:如果在负面反馈之后至少有一个简短的评论,我将不胜感激,这样我就可以知道要改进什么。谢谢。
【问题讨论】:
-
您是否也设置了“附加包含目录”?
-
该错误绝对与您的库二进制文件无关。如果编译器找不到头文件,则包含目录设置不正确
-
我相信这是一个您可能必须自己解决的问题。我们不知道您的标头在硬盘驱动器上的位置,也不知道您在
Additional Include directories中输入的内容,以及您是否将该设置应用于所有配置,而不仅仅是活动配置。用很少的信息进行远程调试非常困难.. -
负面反馈可能是由于缺乏可重复的示例。注意:这对于一个 IDE 问题来说是非常困难的,这会导致回到 @drescherjm 的评论。
-
lib 文件本身不向编译器提供头文件。要在其他项目的代码中使用库,您通常必须在某处安装二进制文件(.lib 文件也 .dll,如果动态链接)和头文件,并告诉编译器在哪里查找头文件和库。
标签: c++ visual-studio static-libraries libraries lib