Ошибка построения Mlt в Windows с использованием MinGw. Неопределенная ссылка dlsym dlclose dlopen dlerror dlclose
Я столкнулся с некоторыми проблемами при построении среды MLT для окон с использованием MinGw. Я пытался следовать инструкциям на http://www.mltframework.org/bin/view/MLT/WindowsBuild. Я выполнил каждый шаг до шага под названием "Сборка". Вот что дает 7-й шаг главы "Сборка":
$ ./configure --prefix=$HOME/build --enable-gpl --disable-decklink
Configuring framework:
Configuring modules:
Configuring modules/avformat:
- libavformat not found: disabling
Configuring modules/core:
Configuring modules/dv:
- libdv not found: disabling
Configuring modules/feeds:
Configuring modules/frei0r:
Package frei0r was not found in the pkg-config search path.
Perhaps you should add the directory containing `frei0r.pc'
to the PKG_CONFIG_PATH environment variable
No package 'frei0r' found
Configuring modules/gtk2:
- GTK2 components not found: disabling
Configuring modules/jackrack:
- jackrack not found: disabling
- xml2 not found: disabling jackrack
- ladspa not found; disabling
Configuring modules/kdenlive:
Configuring modules/kino:
- does not build on OS X or Windows: disabling
Configuring modules/linsys:
- does not build on OS X or Windows: disabling
Configuring modules/lumas:
Configuring modules/motion_est:
Configuring modules/normalize:
Configuring modules/oldfilm:
Configuring modules/opengl:
- movit not found: disabling
Configuring modules/plus:
Configuring modules/plusgpl:
Configuring modules/qt:
- Qt not found - disabling
./configure: line 150: kde4-config: command not found
Configuring modules/resample:
- libsamplerate not found: disabling
Configuring modules/rtaudio:
Configuring modules/sdl:
Configuring modules/sox:
- sox not found: disabling
Configuring modules/swfdec:
- swfdec not found: disabling
Configuring modules/vid.stab:
- vid.stab not found: disabling
Configuring modules/videostab:
Configuring modules/vmfx:
Configuring modules/vorbis:
- ogg vorbis not found: disabling
Configuring modules/xine:
Configuring modules/xml:
- xml2 not found: disabling xml module
Configuring mlt++:
Configuring swig:
GPLv2 license used; GPLv3 components disabled
Похоже, что даже на этапе настройки некоторые библиотеки отсутствуют, я не уверен, что эти недостающие библиотеки являются критически важными...
При попытке выполнить восьмой шаг "Сборка", который называется "сделать все установки", сборка завершается неудачно, и MinGw выдает ошибку:
C:\MinGW\msys\1.0\home\Benas\src\mlt\src\framework/mlt_repository.c:101: undefined reference to `dlsym'
C:\MinGW\msys\1.0\home\Benas\src\mlt\src\framework/mlt_repository.c:109: undefined reference to `dlclose'
C:\MinGW\msys\1.0\home\Benas\src\mlt\src\framework/mlt_repository.c:97: undefined reference to `dlopen'
C:\MinGW\msys\1.0\home\Benas\src\mlt\src\framework/mlt_repository.c:118: undefined reference to `dlerror'
C:\MinGW\msys\1.0\home\Benas\src\mlt\src\framework/mlt_repository.c:113: undefined reference to `dlclose'
collect2.exe: error: ld returned 1 exit status
make[1]: *** [libmlt-6.dll] Error 1
make[1]: Leaving directory `/home/Benas/src/mlt/src/framework'
make: *** [all] Error 1
Это должно быть потому, что компилятор не может найти dlfcn.dll. У меня завершен шаг "dlfcn-win32" из учебника, и эту библиотеку можно найти как в C:\MinGW\bin, так и в C:\MinGW\msys\1.0\home\Benas\build . Мне интересно, почему компилятор не может видеть это и есть ли способ, как я могу заставить его работать?
2 ответа
Проблема, я полагаю, в том, что dlfcn не предоставляет файл.pc, который pkg-config будет использовать для поиска cflags и libs. Я считаю, что вы правильно установили SDL. Вы можете имитировать SDL.pc (обычно это /usr/local/lib/pkg-config/) и написать dl.pc самостоятельно.
Я думаю, ваша платформа не обнаружена правильно. Попробуйте указать целевую ОС в качестве параметра конфигурации:
./configure --target-os=MinGW