如何将预构建的库添加到VC ++解决方案中?

时间:2009-06-21 07:26:16

标签: c++ visual-studio-2008 visual-c++

如果你为它创建一个项目并将其与解决方案中的其他项目一起构建,那么在VC ++ 2008中使用库非常容易,但如果库的构建过程过于复杂并且必须通过makefile单独编译,该怎么办? ?

我的库就是这样,虽然我在命令行上编译它没有问题,但我不知道如何处理生成的头文件和.lib文件。我已将它们全部放在一个目录中,并将其路径添加到我的主项目的Additional Include Directories中,因此它可以很好地找到头文件。我还将相关信息添加到其他库目录和附加依赖项。

也许还有另外一种设置,除了这三种之外我还忘了设置?我很感激能得到的所有帮助。感谢。

编辑以下是我遇到的语法错误:

http://pastebin.com/m72ece684

3 个答案:

答案 0 :(得分:1)

好的,基于这些错误,它与查找.lib文件无关,它会对头文件造成阻塞。

编辑:

它看起来像在windows.h中的某个地方,有一个X942_DH_PARAMETERS的宏定义,它破坏了你的dl_group.h。

不要将你的botan标题放在顶部,而是将windows.h放在顶部,然后在#include botan标题之前添加以下行:

#undef X942_DH_PARAMETERS

或者正如我刚刚发现的那样,该宏是在wincrypt.h中定义的,如果将NOCRYPT添加到预处理器定义中,它将不包含该文件。由于您使用的是第三方加密库,因此您可能不需要wincrypt。

答案 1 :(得分:0)

虽然我不能确切地说出你的问题是什么,但我可以就如何找到解决方案提出一些建议。我建议创建一个包含单个方法和单个类的简单库,构建它,然后尝试将其成功链接到您的项目。完成较小规模后,请尝试使用原始库重复这些步骤。

答案 2 :(得分:0)

对于msvc编译器,您可以添加

#pragma comment(lib, "MYLIBNAME.lib")
在标题中

。这将自动使链接器在“其他库目录”中查找“MYLIBNAME.lib”。

如果不再出现错误

  • 找不到标题......
  • 找不到MYLIBNAME.lib

问题可能与其他一些问题有关,例如错误的C运行时,调试版本不匹配,......

P.S。:如果lib在解决方案树中只是设置对lib的依赖,将导致VS将目标路径添加到libfolder并将libname添加到库中。