以下是VS2013中的设置:
pll.lib
项目 - 不是我写的,是一个大解决方案的一部分,它是纯粹的C
testlib.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
,我可以使用这里的函数没问题,所以我知道库不能被破坏。< / p>
答案 0 :(得分:0)
您需要修复testapp中的C包含路径。这将修复您的包含问题。请注意,包含路径是相对于项目根目录(.vcxproj文件)而不是cpp文件。
之后你还需要将testapp与testlib链接 - 最简单的方法是在testlib中添加anoroject引用。转到testapp属性,在左侧树中展开第一个选项并在那里添加引用。如果你需要链接到pll.lib并且听起来像你那样做,那就在testapp链接器输入中添加它。
您还应该知道pll.lib内存管理是否是密封的。如果你需要删除在pll.lib中分配的mem,你应该生成动态链接到相同CRT版本的代码pll.lib是针对编译的。
答案 1 :(得分:0)
将您正在谈论的所有文件放在与项目文件相同的文件夹中,然后尝试使用;
#include "pll.h"
而不是;
#include <pll.h>