现在是VS2013中的设置:pll.lib
项目-不是我写的,是一个很大的解决方案的一部分,它是纯Ctestlib.lib
项目-由我制作,几乎是.exe
工具的复制/粘贴作业,包含pll.lib
,它是纯C语言testapp.exe
项目-由我编写,只是要测试的控制台应用程序,C ++testapp
包括testlib.h
,在那里没有问题。testlib
包括pll.h
,C/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/