【问题标题】:Visual Studio: ignore undefined references in shared librariesVisual Studio:忽略共享库中未定义的引用
【发布时间】:2023-04-02 00:27:01
【问题描述】:

我希望编译一个使用共享库的项目,但我无权访问原始库文件。但是,我确实有原始界面...

我基本上想要的只是让编译器进行符号名称修改等,所以我不必手动调用 GetProcAddress...

然而,当我不链接共享库时,Visual Studio 会抱怨未定义的引用 (duh)。使用 GNU LD,我可以使用“allow-shlib-undefined”,但不幸的是我必须使用 MSVC++。 ..有类似的吗?

编辑:

当然,我可以制作一个假的(代理)dll,为我的接口中找到的所有方法创建存根,链接它,然后加载原始 dll。我不知道这是否是最好的解决方案...

编辑2:

看起来我可以只导出符号并生成一个 lib 文件: http://www.coderetard.com/2009/01/21/generate-a-lib-from-a-dll-with-visual-studio/

我会先尝试并报告。

【问题讨论】:

    标签: visual-c++ dll compiler-construction linker shared-libraries


    【解决方案1】:

    尝试调查"Edll for Windows" (home) 的实现:

    EnhancedDLL -- 拥有带有未定义符号的插件和库

    它发现了 4 个解决方案来克服 DLL 限制:"The usual solution"、"The sub-DLL solution"、"The .def &.a solution" 和 "The edll solution"。

    【讨论】:

    • 我已经设法通过使用 objdump 转储导出然后使用 def 文件生成 lib 文件来破解它。看起来很像您的第三个解决方案...赞成并接受,因为它是唯一一个回答并为将来需要它的任何人提供体面的答案的人。
    猜你喜欢
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2019-02-12
    相关资源
    最近更新 更多