包括图书馆将无法正常工作

时间:2014-08-14 13:13:35

标签: c++ c visual-studio

以下是VS2013中的设置:

  • pll.lib项目 - 不是我写的,是一个大解决方案的一部分,它是纯粹的C

  • testlib.lib项目 - 由我制作,几乎是来自.exe工具的复制/粘贴作业,包括pll.lib,它是纯粹的C

    < / LI>
  • 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,我可以使用这里的函数没问题,所以我知道库不能被破坏。< / p>

2 个答案:

答案 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>