我遇到了讨厌的链接器错误,希望能找到解决方法。

以我理解错误的方式,链接器无法在类“ BFStream”中找到名为“ read”的函数的实现。该代码包括BFStream类的头。有一个导入库QRFound.lib,它接收来自QRFound.dll的导出函数。 dll和lib都在文件系统上的lib目录中。在项目属性中的两个位置提供lib目录:VC ++目录->库目录和链接器->其他库目录。 QRFound.lib在“链接器”->“输入”->“其他依赖项”中指定,位于列表的第一位。

我知道QRFound.dll包含BFStream :: read的实现,因为我使用了依赖行者来查看它。但是C ++装饰与链接器错误略有不同,链接器错误使我感到怀疑:?read@BFStream@@QAE_NPADH@Z

链接器错误是:

1>     Creating library C:\MyProj\Debug\MyDisplay.lib and object C:\MyProj\Debug\MyDisplay.exp
1>MyCmdReceiver.obj : error LNK2001: unresolved external symbol "public: bool __thiscall BFStream::read(char *,__int64)" (?read@BFStream@@QAE_NPAD_J@Z)

最佳答案

在您的交易品种上运行undname.exe实用程序会产生:

Undecoration of :- "?read@BFStream@@QAE_NPADH@Z"
is :- "public: bool __thiscall BFStream::read(char *,int)"


因此,是的,显然最后一个参数__int64不匹配int不匹配。您没有发布该方法的实际声明,所以我无法得出一个恰当的猜测,说明这种不匹配是如何发生的。我怀疑这是某种宏汤问题。

关于c++ - 需要帮助解决链接器错误LNK2001 visual studio 2010,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11017108/

10-13 00:06