[vlc-devel] problem with libmkv when compiling VLC.exe on WIN32

Damien Fouilleul damien.fouilleul at laposte.net
Mon Sep 27 14:43:49 CEST 2004


Hi,

I've noticed that libmvk.a had hard-dependencies on APIs in the 'libmp4' 
plugin module, hence when I compile VLC.exe on Windows, I get the 
following link errors:

g++ -mno-cygwin -O2 -Wsign-compare -Wsign-compare -Wall -mms-bitfields 
-pipe -L/usr/win32/lib -o vlc.exe src/vlc-vlc.o lib/libvlc.a 
share/vlc_win32_rc.o ./modules/misc/memcpy/libmemcpymmx.a 
./modules/video_chroma/libi420_rgb_mmx.a 
./modules/video_chroma/libi422_yuy2_mmx.a 
./modules/video_chroma/libi420_ymga_mmx.a 
./modules/video_chroma/libi420_yuy2_mmx.a 
./modules/misc/memcpy/libmemcpymmxext.a 
./modules/misc/memcpy/libmemcpy3dn.a ./modules/demux/liblivedotcom.a 
./modules/demux/libmkv.a ./modules/codec/ffmpeg/libffmpeg.a 
-L/usr/local/lib -lkernel32 /usr/win32/lib/libiconv.a 
/usr/win32/lib/libintl.a /usr/win32/lib/libiconv.a -lws2_32 -lnetapi32 
-lwinmm -mwindows -L/usr/win32/lib 
-L/usr/win32/live.com/UsageEnvironment -lUsageEnvironment 
-L/usr/win32/live.com/groupsock -lgroupsock 
-L/usr/win32/live.com/BasicUsageEnvironment -lBasicUsageEnvironment 
-L/usr/win32/live.com/liveMedia -lliveMedia -lws2_32 -lz -lmatroska 
-lebml -lavcodec -lz -lfaac -lmp3lame -lxml2
./modules/demux/libmkv.a(libmkv_a-mkv.o)(.text+0x1d0e):mkv.cpp: 
undefined reference to `_MP4_MemoryStream'
./modules/demux/libmkv.a(libmkv_a-mkv.o)(.text+0x1d27):mkv.cpp: 
undefined reference to `_MP4_ReadBoxCommon'
./modules/demux/libmkv.a(libmkv_a-mkv.o)(.text+0x1d33):mkv.cpp: 
undefined reference to `_MP4_ReadBox_sample_vide'
./modules/demux/libmkv.a(libmkv_a-mkv.o)(.text+0x1dd2):mkv.cpp: 
undefined reference to `_MP4_FreeBox_sample_vide'

I've temporarily solved the problem by creating a WIN32 import lib for 
libmp4 and use that when compiling VLC.exe, which change the hard 
dependency to a soft one, but I don't think that this is a long term 
solution, since in essence, plugins are 'optional' components and if 
'libmp4_plugin.dll'  is not available, vlc.exe will bail out when it 
calls those _MP4_ APIs.

I believe an explicit 'LoadLibrary' mechanism should be devised before 
using these APIs.

Damien


Subversion daemon wrote:

>r8795 | sigmunau | 2004-09-26 01:36:55 +0200 (Sun, 26 Sep 2004) | 4 lines
>Changed paths:
>   M /trunk/modules/demux/Modules.am
>   M /trunk/modules/demux/mkv.cpp
>   M /trunk/modules/demux/mp4/libmp4.c
>   M /trunk/modules/demux/mp4/libmp4.h
>
>mkv.cpp: added support for quicktime video codecs in mkv (tested with svq3)
>Modules.am: link mkv demux with mp4 demux
>mp4/*: export some functions needed by mkv demux
>
>  
>

-- 
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html



More information about the vlc-devel mailing list