我正在使用帶有pvcs編譯器的makefile系統(使用Microsoft Visual C++,2008編譯器),並且我得到幾個表單鏈接錯誤:Clrdump(C++)錯誤LNK2019:無法解析的外部符號__imp__RegisterFilter @ 8在函數中引用_main
error LNK2019: unresolved external symbol [email protected] referenced in function _main
這是發生,儘管使用extern "C"
聲明,即:
extern "C" int CLRDUMP_API RegisterFilter(LPCWSTR pDumpFileName, unsigned long DumpType);
此外,在makeexe.mak,該庫被鏈接作爲:
$(COMPILEBASE)\ lib \ clrdump.lib \
說實話,我不是makefiles的專家,我正在將系統從Microsoft Visual C++ 6.0更改爲2008.此轉換可能有與鏈接錯誤有關,就像系統之前使用的那樣。
任何幫助真的不勝感激。
由於事先
真誠, 約瑟夫
- 編輯1 -
有誰知道如何在PVC的makefile文件系統開啓冗長的?
注意上面的功能已經是一個編譯器飾的版本,有
[email protected]
而C++函數只是
RegisterFilter
感謝您的幫助,但如果任何人都可以發佈更多完整的解決方案,這也將非常感激。
真誠,約瑟夫
- 編輯2 -
一些善良的人張貼了這個,但是當我在簽署消失:
小鬼前綴表示,此功能是進口來自DLL。檢查CLRDUMP_API
的定義 - 是__declspec(dllimport)
?有關更多信息,請參閱此文章。
有一個工作鏈接,但我失去了,但我想可以隨時搜索主題。
謝謝,不管你是誰!
- 編輯3 -
感謝ChrisN(我還沒有投票權)。儘管使用刷新按鈕,您的答案消失了,但在我發佈剪切粘貼之後又重新出現了。
這是我的這個定義:
define CLRDUMP_API __declspec(dllimport) __stdcall
我假設__stdcall是OK?
- 編輯4 -
雖然我很欣賞那些誰回答,特別是ChrisN,至少在我的特定系統的努力,鏈接錯誤仍然存在。所以如果有人有任何進一步的見解,我會很感激。再次感謝。
ChrisN:這遠遠超出了這些發帖小組的預期。我試着在調用函數中使用一個強制類型(編譯器扼住了它,它被刪除了),我也嘗試了編譯器選項: /Zc:wchar_t- 在我自己的情況下,儘管先構建一個clean,但仍然失敗! – JosephDoggie 2008-12-02 21:54:59
沒有看到更多的代碼,我不認爲我能夠進一步提供幫助。你有圖書館的源代碼嗎? – ChrisN 2008-12-02 22:11:08