【问题标题】:Can .EXE use symbols from an indirectly imported DLL?.EXE 可以使用间接导入的 DLL 中的符号吗?
【发布时间】:2020-08-27 07:29:42
【问题描述】:

我有一个依赖于 Common.dll 的 Sample.exe 项目。我需要在 Sample.exe 和 Common.dll 中都使用 libcurl.dll 。我是否需要将 libcurl.lib 导入 Sample.exe 和 Common.dll ,或者 .EXE 模块是否能够使用 libcurl.dll (如果它是由 Common.dll 导入的)。 到目前为止,在我的实验中,我在 Sample.exe 项目构建中遇到了“未解决的外部”错误,即使它引用了引用 libcurl.dll 的 Common.dll 。

【问题讨论】:

  • 两者都需要参考。运行时只使用一份 libcurl.dll。
  • 链接器不解析传递导入。如果 Sample.exe 需要引用从 libcurl.dll 导出的符号,则需要链接 libcurl 的导入库。

标签: c++ c winapi dll dependencies


【解决方案1】:

不,它不能。链接器不会在您导入的 dll 中搜索它自己导入的其他 dll 中的符号,也不会解决这种间接导入。您还必须与 libcurl.dll 链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2013-02-25
    • 2012-12-20
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多