C Builder鏈結錯誤的解決方法

2021-06-22 02:40:00 字數 1091 閱讀 9895

最近更換了md5的加密函式,新函式使用了indy的tidhashmessagedigest5。某些工程在鏈結的時候出現以下錯誤:

[ilink32 error] error: unresolved external 'idhashmessagedigest::tidhashmessagedigest5::' referenced from ...

[ilink32 error] error: unresolved external '__fastcall idhashmessagedigest::tidhashmessagedigest4::tidhashmessagedigest4()' referenced from ...

[ilink32 error] error: unresolved external '__fastcall idglobal::indytextencoding_utf16le()' referenced from ...

[ilink32 error] error: unresolved external '__fastcall idhash::tidhash::hashstringashex(const system::unicodestring, system::delphiinte***ce)' referenced from ...

[ilink32 error] error: unable to perform link

備註:以上錯誤資訊中referenced from後面省略了具體的檔名,用...替代

在網上搜尋錯誤資訊,出來的網頁結果比較少,比較可信的說法是要新增indyprotocols包。在工程選項裡,對比鏈結成功和報錯的工程,並未找到區別。開啟相應的工程檔案(*.cbproj),發現能成功鏈結的工程在這個tag裡有indyprotocols.lib,將indyprotocols.lib加入到鏈結失敗的工程檔案中。在ide裡關閉工程,重新開啟工程,鏈結成功。allpackagelibs的含義可以參考文章:

#pragma comment (lib, "indycore.lib")

#pragma comment (lib, "indysystem.lib")

#pragma comment (lib, "indyprotocols.lib")

常見鏈結錯誤解決辦法

找了好久。總算解決了。第一類 系統默然設定引起的問題 第二類 程式沒有新增必要的庫。當copy網上的源程式,在本機編譯的時候,由於新建的工程沒有把連線用的庫,在連線的時候新增進去,所以一些函式 變數找不到定義的庫檔案,從而出錯。texture.obj error lnk2001 unresolved...

Tfs鏈結錯誤解決方案

1.system microsoft.net framework v2.0.50727 config 下的 machine.config 檔案有亂碼問題。2.有防火牆阻止或其它安全軟體阻止問題 3.ie 設定,我是這個問題,突然我的ie設定了 導致不能連線tfs,tfs那邊有ip過濾 解決思路 方法...

ORACLE鏈結錯誤解決方案

情景 遠端伺服器安裝oralcle服務,遠端可以通過sqlplus連線,本地連線報錯ora 1247丟失連線 解決方法 orcl description address protocol tcp host localhost 10.0.13.123 port 1521 connect data se...