我正在使用带有 pvcs 编译器的 makefile 系统(使用 Microsoft Visual C++,2008 编译器)并且我收到了以下形式的几个链接错误:
error LNK2019: unresolved external symbol __imp__RegisterFilter@8 referenced in function _main
尽管使用extern "C"声明,即发生这种情况,即:
extern "C" int CLRDUMP_API RegisterFilter( LPCWSTR pDumpFileName, unsigned long DumpType );
此外,在 makeexe.mak 中,该库被链接为:
$(编译库)\lib\clrdump.lib\
老实说,我不是 makefile 方面的专家,我正在将系统从 Microsoft Visual C++ 6.0 转换到 2008。这种转换可能与链接错误有关,因为系统以前可以正常工作。
任何帮助将不胜感激。
提前致谢,
真诚的,约瑟夫
-- 编辑 1 --
有谁知道如何在 pvcs 的 makefile 系统中打开详细信息?
请注意,上面的函数已经是编译器修饰的版本,具有
__imp__RegisterFilter@8
而 C++ 函数只是
RegisterFilter
感谢您的帮助,但如果有人可以发布更完整的解决方案,那也将不胜感激。
真诚的,约瑟夫
-- 编辑 2 --
某个好心人发布了这个,但是当我登录时它消失了:
imp 前缀表示该函数是从 DLL 导入的。检查CLRDUMP_API- 的定义是__declspec(dllimport)吗?有关更多信息,请参阅本文。
有一个工作链接,但我失去了它,但我想人们总是可以搜索这个主题。
谢谢,不管你是谁!
-- 编辑 3 --
谢谢 ChrisN(我还不能投票)。尽管使用了刷新按钮,但您的答案消失了,但在我发布剪切粘贴后又重新出现。
这是我的定义:
define CLRDUMP_API __declspec(dllimport) __stdcall
我假设 __stdcall 没问题?
-- 编辑 4 --
虽然我感谢那些回答的人,尤其是 ChrisN,至少在我的特定系统上所做的努力,但链接错误仍然存在。因此,如果有人有任何进一步的见解,我将不胜感激。再次感谢。