0

I faced some problems while building MLT framework on windows using MinGw. I tried to follow instructions on http://www.mltframework.org/bin/view/MLT/WindowsBuild . I completed every step until step called "Build". This is what 7th step of "Build" chapter yields:

 $ ./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

Looks like even on configuration phase some libraries are missing, I'm not sure whether these missing libs are mission-critical though...

When trying to take 8th "Build" step called "make all install" build fails and MinGw spits out error:

 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

This must be because compiler can't find dlfcn.dll. I have "dlfcn-win32" step from tutorial completed and that library can be found both on C:\MinGW\bin and C:\MinGW\msys\1.0\home\Benas\build . I'm wondering why compiler can't see it and is there any way how can I make it work?

Benas
  • 2,106
  • 2
  • 39
  • 66

2 Answers2

0

the problem is, I guess, that dlfcn doesn't provide a .pc file, which pkg-config will use to look for cflags and libs. I believe you have installed SDL correctly. You may imitate SDL.pc (typically under /usr/local/lib/pkg-config/) and write a dl.pc your self.

faraday
  • 41
  • 3
  • Hi, thank you for your answer. I want to ask where I should put SDL.pc file? I put it into C:\MinGW\msys\1.0\home\Benas\lib\pkgconfig\SDL.pc is that ok? And the contents of that file is https://android.googlesource.com/platform/prebuilt/+/e3d96c1ec935506eb8b48d30fdd89a2ec8ab3288%5E/windows/sdl/lib/pkgconfig/sdl.pc with prefix=/home/Benas and version set to Version: 1.2.15 . And what about "dl.pc" do you mean "sdl.pc" ? It still throws the same error. Where do I need to put sdl.pc file and how it should look like? – Benas Apr 08 '14 at 05:25
  • The position and content of SDL.pc are OK.( If you compile and install SDL from source, SDL.pc will be installed too. You may have a try later.) I mean "dlfcn.pc" by "dl.pc". After more investigation, I think dlfcn.pc is not the key problem in your case. Let's put it aside. Sorry for that. Another thing come to my mind is that you may miss "libdl.dll.a". Copy /mingw/lib/libdl.dll.a to your build directory, just like you copy libdl.dll. Then have a try. – faraday Apr 08 '14 at 13:13
  • I copied "libdl.dll.a" from C:\MinGW\lib\ to C:\MinGW\msys\1.0\home\Benas\build\ and I still get the same error. – Benas Apr 09 '14 at 19:23
  • Sorry I made a mistake. The destination folder should be lib not build. It should be copy C:\MinGW\lib\libdl* C:\MinGW\msys\1.0\home\Benas\lib. Then set LDFLAGS, simply "export LDFLAGS=-L/home/Benas/lib" in bash. It it still doesn't work, I suppose we need to find other ones for help :-) – faraday Apr 10 '14 at 08:12
  • The problem still persists. Thank you for the help anyway. I posted the same problem into MLT's mailing list https://sourceforge.net/p/mlt/mailman/message/32191411/ , maybe someone will know the answer. – Benas Apr 10 '14 at 09:57
  • Sad to hear that. I didn't have this issue on my side. Just 2 differences with you: 1) I check out dlfcn source code through svn; 2) I build and install directly into my building directory, no copying after. – faraday Apr 10 '14 at 14:47
0

I guess your platform is not detected correctly. Try to specify the target OS as configure parameter:

./configure --target-os=MinGW