0

我正在使用 Visual Studio 2008。我正在尝试在我的源代码中使用 C++ 库。在我的计算机上安装库后,我有一些包含文件以及一些库文件。此外,bin文件夹中还有msvcm80.dll、msvcp80.dll、msvcr80.dll。

我在链接下面解释的项目时遇到问题。我在网上搜索,但我没有找到我的问题的相对答案。

我做了以下程序:

  1. 我使用了 Explorer Lib 软件,发现 .lib 文件是在发布配置中构建的。

  2. 我将 Visual Studio 解决方案设置为 32 位的发布模式。我不确定我应该使用 32 还是 64。(下面我解释了当我将其更改为 x64 平台时会发生什么)。

  3. 我将库文件添加到链接器依赖项及其在附加库目录中的路径。

  4. 我在源代码中包含了头文件。

  5. 当我尝试构建解决方案时,我在源代码中调用的函数上收到错误“LNK2001:未解析的外部符号”。即使我删除了库依赖项并在链接器配置中删除了它们的路径,我也会收到相同的错误。

我的问题是为什么链接器没有在库文件的源代码中找到被调用的函数?

当我将平台从 Win32 更改为 x64 时,我收到错误 LNK 2001 但在另一个功能上。不同之处在于链接器抱怨我没有在源代码中直接调用的函数。

有人可以帮我找出这个错误的原因吗?如果我没有清楚地解释我的问题,请告诉我。

谢谢,

艾哈迈德

4

1 回答 1

0

您必须提供更多详细信息,也许是一些(第一个)错误消息。

在 VS 中正确设置链接器从来都不是一件容易的事。您可以检查的几点:

  • 如果使用 winsock 库,请检查首先包含哪些库,等等(著名的 winsock.h 与 winsock2.h)

  • 检查平台工具集(在您的情况下,它可能应该是 v80)

  • 最后同样重要的是,如果缺少的外部是 Windows API,您可能需要在 Linker\Additional Dependencies 中指定如下内容:User32.lib、Shell32.lib、Oleaut32.lib、Advapi32.lib,具体取决于所使用的 API。

于 2013-02-27T08:21:22.033 回答