现在是VS2013中的设置:


pll.lib项目-不是我写的,是一个很大的解决方案的一部分,它是纯C
testlib.lib项目-由我制作,几乎是.exe工具的复制/粘贴作业,包含pll.lib,它是纯C语言
testapp.exe项目-由我编写,只是要测试的控制台应用程序,C ++
testapp包括testlib.h,在那里没有问题。
testlib包括pll.hC/C++->additional include directories也具有$(SolutionDir)\pll\include,未指定链接程序库(就像.exe工具和此解决方案中使用pll库的其他项目一样)。我还在解决方案依赖项管理器中的适当位置打了勾。


当我开始编写#include时,它会按预期提供pll.h的自动完成功能,但是当我尝试编译testapp时,它会说

Cannot include file "pll.h" no such file or directory


我不明白,为什么不行呢?

还要注意:testapp还包括另一个库libgen,其中也包括pll.h,我可以从那里使用函数,所以我知道该库不能被破坏。

最佳答案

您需要在testapp中修复C包含路径,这将解决您的包含问题。请注意,包含路径是相对于项目根目录(.vcxproj文件)而不是cpp文件的路径。

之后,您还需要将testapp与testlib链接-这样做的最简单方法是向testlib添加anoroject引用。转到testapp属性,在左侧树中展开第一个选项,然后在其中添加引用。如果您需要链接到pll.lib,听起来像您,请在testapp链接器输入中添加它。

您还应该知道pll.lib内存管理是否是封闭的。如果需要删除在pll.lib中分配的mem,则应生成动态链接到编译pll.lib的相同CRT版本的代码。

关于c++ - 包括图书馆是行不通的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25308929/

10-11 21:27