3

我希望編譯一個使用共享庫的項目,但我無法訪問原始lib文件。但是我做的,有原來的界面...Visual Studio:忽略共享庫中的未定義引用

所有我想基本上是可以讓編譯器做符號名稱重整等,這樣我就不必手動調用到GetProcAddress的...

的Visual Studio然而,抱怨未定義的引用(杜),當我不鏈接到共享的lib ....與GNU LD我可以使用'allow-shlib-undefined',但不幸的是我必須使用MSVC++ ...是否有東西類似?

編輯:

當然,我可以做一個假的(代理)DLL,所有在我的接口中發現的方法,針對鏈路創建存根,然後加載原始的dll文件。我不知道這是最好的解決辦法,但...

EDIT2:

看起來像我可以導出符號,並生成一個庫文件: http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/

我想試試第一和報告回來。

回答

3

嘗試以調查"Edll for Windows"home)實現:

EnhancedDLL - 有插件和庫未定義的符號

它發現4級的解決方案,以克服DLL限制:"The usual solution""The sub-DLL solution""The .def &.a solution""The edll solution"

+1

我已經設法通過使用objdump來轉儲導出,然後使用def文件來生成lib文件。看起來很像你的第三個解決方案...... Upvote&accept是唯一一個回答併爲將來需要它的人提供體面的答案。 – 2011-02-01 02:12:59

相關問題