【问题标题】:mingw 3.4.5 missing dlfcn.h?mingw 3.4.5 缺少 dlfcn.h?
【发布时间】:2009-09-09 00:31:24
【问题描述】:

我的 mingw 3.4.5 安装可能有问题吗?或者这是在其他一些浮动的库中提供的?

如果您想知道,dlfcn.h 是定义像 dlopen 和 dlclose 这样的东西的地方,所以它应该是非常标准的

【问题讨论】:

  • 搞笑,我最近也遇到了这个问题。
  • MinGW 在设计上不符合 POSIX。它旨在成为本机 Windows 工具链。将 Cygwin 用于 POSIX 兼容的 win32 工具。

标签: mingw


【解决方案1】:

dlfcn-win32 是 dlfcn 对 win32 dll 函数的封装

【讨论】:

    【解决方案2】:

    它不在我的 MinGW 3.4.5 安装中,所以我怀疑你的安装有问题。我想 MinGW 的维护者希望你使用支持动态加载的 Win32 函数(LoadLibrary()GetProcAddress() 等)。

    【讨论】:

      【解决方案3】:

      我知道这是一个老问题,但今天仍然很重要,不管 MinGW.org 的 GCC 版本可能正在使用中。

      那些已经观察到 MinGW 确实旨在与基于 LoadLibrary() 和 GetProcAddress() 的本机 Win32 API 一起使用,而不是在 dlfcn.h 中声明的 POSIX 特定 API 的人是完全正确的;因此,MinGW.org 传统上没有提供任何 dlfcn.h API 函数的实现。

      但是,从 mingwrt-3.21 开始,我需要实现 MinGW 功能,这类似于 POSIX 在 RTLD_DEFAULT 地址空间上使用 dlsym()。因此,从这个版本的 MinGW 运行时开始,我打算维护 POSIX dlfcn.h API 的一致实现,作为 LoadLibrary()、GetProcAddress() 和 PSAPI.DLL 本机 Win32 API 的包装器。

      【讨论】:

      • 请注意,dlfcn 的 MinGW 实现不是源自 dlfcn-win32(在另一个答案中提到,现在可以在 GitHub 上找到)。这是一个从头开始编写的新实现,提供更全面的 POSIX 功能合规性(MinGW 需要);它也是根据更宽松的 MIT 许可证而不是 GPL-2 分发的。
      • 你写“意图”你已经开始了吗?
      • @D4v1dW3bb,实现早已完成,正如我所写,我打算在可预见的将来维护它。自 3.21 版以来,此实现已与 mingwrt 一起分发,并且在当前的 5.4.x 分发版中仍然有效。兼容MinGW-GCC-4.x及更高版本; (MinGW-GCC-9.2.0 是最新的)。请不要让我继续支持 MinGW-GCC-3.4.5;它在几年前就达到了 EOL。
      【解决方案4】:

      我遇到了这个问题,在cygwin shell下windows上安装dlfcn-win32-r19.tar.bz2后,问题解决了。

      https://code.google.com/p/dlfcn-win32/downloads/detail?name=dlfcn-win32-r19.tar.bz2

      我希望这可以帮助其他人。

      【讨论】:

        【解决方案5】:

        mingw 是实现 win32 API 的 windows 编译器(一个 gcc 端口)的实现。 dlfcn.h(dlopen/dlsym 等)中的函数是 POSIX,而不是 windows,因此不存在 win32 实现。 msys 或 cygwin 中可能有一个包装器,但我担心 windows DLL 和 ELF 共享库机制之间的差异意味着您只需要移植到 windows API。

        【讨论】:

          【解决方案6】:

          dlfcn.h: 没有这样的文件或目录

          为了解决这个问题,我必须添加到 .pro 文件中:

          DEFINES += _WINDOWS
          

          【讨论】:

            猜你喜欢
            • 2020-11-12
            • 1970-01-01
            • 1970-01-01
            • 2021-12-02
            • 1970-01-01
            • 1970-01-01
            • 2018-10-24
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多