Mingw 3.4.5 отсутствует dlfcn.h?

Возможно ли, что моя установка 3.4.5 в mingw ошибочна? или это предусмотрено в какой-либо другой библиотеке, плавающей вокруг?

в случае, если вам интересно, dlfcn.h - это то, где определены такие вещи, как dlopen и dlclose, поэтому он должен быть довольно стандартным

Ответ 1

Это не в моей установке MinGW 3.4.5, поэтому я сомневаюсь, что ваша установка неисправна. Я полагаю, что разработчики MinGW ожидают, что вы будете использовать функции Win32, поддерживающие динамическую загрузку (LoadLibrary(), GetProcAddress() и т.д.).

Ответ 2

dlfcn-win32 является оболочкой для dlfcn вокруг функций win32 dll

Ответ 3

mingw - это внедрение компилятора для окон (gcc-порт), реализующих API win32. Функции в dlfcn.h(dlopen/dlsym и др.) - это POSIX, а не окна, поэтому реализация win32 не существует. В msys или cygwin может быть оболочка, но я боюсь, что различия между DLL файлами Windows и механизмами общей библиотеки ELF означают, что вам просто нужно будет переносить API-интерфейсы Windows.

Ответ 5

Я знаю, что это старый вопрос, но тем не менее актуальный и сегодня, независимо от версии GCC от MinGW.org, которая может быть использована.

Те, кто заметил, что MinGW действительно предназначены для использования с собственными API-интерфейсами Win32, на основе LoadLibrary() и GetProcAddress(), а не с API-интерфейсами POSIX, объявленными в dlfcn.h, полностью верны; таким образом, MinGW.org традиционно не реализовал реализацию функций API dlfcn.h.

Однако, начиная с mingwrt-3.21, мне нужно было реализовать функцию MinGW, которая сродни использованию POSIX для dlsym() в адресном пространстве RTLD_DEFAULT. Следовательно, начиная с этой версии среды MinGW, я намерен поддерживать совместимую реализацию API-интерфейсов POSIX dlfcn.h в качестве обертки вокруг собственных API-интерфейсов LoadLibrary(), GetProcAddress() и PSAPI.DLL.

Ответ 6

dlfcn.h: Нет такого файла или каталога

Чтобы решить эту проблему, мне пришлось добавить в файл .pro:

DEFINES += _WINDOWS