[vlc-devel] Re: I managed to cross-compile vlc for zaurus.

Juan Antonio Martinez Navarro juanantonio at dif.um.es
Tue Mar 28 09:28:29 CEST 2006


Hi Yan Lu,

El mar, 28-03-2006 a las 11:50 +1000, Yan Lu escribió:
> Hi 
> 
> I have got errors during building process. The errors are"
> 
> --- start pasting -----
> 
> g++ -mno-cygwin -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/mux/mpeg/libmux_ts.a
> ./modules/demux/libmkv.a ./modules/codec/ffmpeg/libffmpeg.a
> ./modules/stream_out/libstream_out_switcher.a -L/usr/local/lib -g -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 -ldvbpsi -lz -lmatroska
> -lebml -lavformat -lz -lavcodec -lavutil -lz -lfaac -lmp3lame

For these errors:
> ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function
> `InitPostproc__ffmpeg':
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:164: undefined
> reference to `_pp_get_context'
> ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function
> `PostprocPict__ffmpeg':
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:191: undefined
> reference to `_pp_postprocess'
> ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function
> `ClosePostproc__ffmpeg':
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:209: undefined
> reference to `_pp_free_mode'
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:210: undefined
> reference to `_pp_free_context'
> ./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In function
> `PPQCallback':
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:244: undefined
> reference to `_pp_get_mode_by_name_and_quality'
> /home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:244: undefined
> reference to `_pp_get_mode_by_name_and_quality'

What I did was this.

First: find the files where are those functions or methods that are
undefined.

For this error, for example:
./modules/codec/ffmpeg/libffmpeg.a(libffmpeg_a-postprocess.o): In
function `InitPostproc__ffmpeg':
/home/vlc/vlc-0.8.4a/modules/codec/ffmpeg/postprocess.c:164: undefined
reference to `_pp_get_context'

Find where is the implementation of _pp_get_context in the source of
vlc.

Second:
Find how vlc builds libffmpeg.a, I suggest you to delete it, and in that
directory run make. You will see in the screen the command 

   arm-linux-ar cru libffmpeg.a <sources for the library>
   arm-linux-ranlib libffmpeg.a

Third:

Run your own script adding the files you need to the arm-linux-ar:

  arm-linux-ar cru libffmpeg.a <sources for the library> <the ones you
want to add>
  arm-linux-ar cru libffmpeg.a

On this way you have solved the undefined referenced to these functions.
I'll send again my script in English ;-).

Good Luck, and if you have problems do not hesitate to ask me I hope it
works.
> collect2: ld returned 1 exit status
> make[2]: *** [vlc.exe] Error 1
> make[2]: Leaving directory `/home/vlc/vlc-0.8.4a'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/vlc/vlc-0.8.4a'
> make: *** [all] Error 2
> 
> ----- end pasting --------
> 
> I have run configure with
> 
> ./configure \
>     --disable-sdl --disable-gtk \
>     --enable-nls \
>     --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \
>     --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \
>     --enable-pp --enable-gpl \
>     --with-wx-config-path=/usr/win32/bin \
>     --with-freetype-config-path=/usr/win32/bin \
>     --with-fribidi-config-path=/usr/win32/bin \
>     --enable-livedotcom --with-livedotcom-tree=/usr/win32/live.com \
>     --enable-caca --with-caca-config-path=/usr/win32/bin \
>     --with-xml2-config-path=/usr/win32/bin \
>     --with-dvdnav-config-path=/usr/win32/bin \
>     --disable-cddax --disable-vcdx --enable-goom \
>     --enable-toolame --enable-dvdread \
>     --enable-debug
> 
> Please give me some suggestions. Thanks in advance.
> 
> Yan
> 
> 
> -----Original Message-----
> From: vlc-devel-bounce at videolan.org [mailto:vlc-devel-bounce at videolan.org]
> On Behalf Of Juan Antonio Martinez Navarro
> Sent: Monday, March 27, 2006 9:45 PM
> To: vlc-devel
> Subject: [vlc-devel] I managed to cross-compile vlc for zaurus.
> 
> Hi everyone,
> 
> I've eventually got a vlc for the Zaurus SL-C3100.
> 
> These are the problems I got during the process:
> 
> In the compilation of libavcodec I had too many problems with huffyuv
> codec so I decided to compile libavcodec without it.
> 
> After execute "ipkg/rules.zaurus config" to run configure with the rules
> for Zaurus. I had to change two lines in vlc-config file.
> 
> Lines 150 and 155: ldflags ... -ljpeg
> I had to put the path to libjpeg.a instead of -ljpeg.
> "-L/home/dsl/Sources/jpeg6b/libjpeg.a
> 
> Afterwords. When I type ipkg/rules.zaurus or make.
> 
> 
> I got several errors related with undefined symbols. That is because
> several ".a" files formed with arm-linug-ar but they needs to be formed
> with some files more. I made the attached script to change this. 
> 
> I hope this could help other people,
> 
> Thanks everybody.
> 
> -- 
> Juan Antonio Martínez Navarro <juanantonio at dif.um.es>
> Departamento de Ingeniería de la Información y las Comunicaciones
> Facultad de Informática
> Universidad de Murcia
> Teléfono: +34-968-367938
> 
> #####################################################################################
> This e-mail message has been scanned for Viruses and Content and cleared 
> by NetIQ MailMarshal.
> #####################################################################################
> 
-- 
Juan Antonio Martínez Navarro <juanantonio at dif.um.es>
Departamento de Ingeniería de la Información y las Comunicaciones
Facultad de Informática
Universidad de Murcia
Teléfono: +34-968-367938
-------------- next part --------------
echo Going to ./modules/codec FOR liblibmpeg2.a
# For ./modules/codec/liblibmpeg2.a
# We need lib_libvlc_a-vout_synchro.o
cd ./modules/codec/
arm-linux-ar cru liblibmpeg2.a liblibmpeg2_a-libmpeg2.o ../../src/video_output/lib_libvlc_a-vout_synchro.o
arm-linux-ranlib liblibmpeg2.a
cd ../../

echo Going to ./modules/demux/mp4 FOR libmp4.a
# For ./modules/demux/mp4/libmp4.a
# We need drms.c -> libmp4_a-drms.o; ./src/misc/md5.c -> ./src/misc/lib_libvlc_a-md5.o
cd ./modules/demux/mp4
arm-linux-ar cru libmp4.a libmp4_a-mp4.o libmp4_a-libmp4.o libmp4_a-drms.o ../../../src/misc/lib_libvlc_a-md5.o
arm-linux-ranlib libmp4.a
cd ../../../

echo Going to ./modules/demux/playlist FOR libplaylist.a
# For ./modules/demux/playlist/libplaylist.a
# We need src/misc/lib_libvlc_a-unicode.o src/misc/lib_libvlc_a-xml.o
cd ./modules/demux/playlist
arm-linux-ar cru libplaylist.a libplaylist_a-playlist.o libplaylist_a-old.o libplaylist_a-m3u.o libplaylist_a-b4s.o libplaylist_a-pls.o libplaylist_a-dvb.o ../../../src/misc/lib_libvlc_a-unicode.o ../../../src/misc/lib_libvlc_a-xml.o
arm-linux-ranlib libplaylist.a 
cd ../../../

echo Going to  ./modules/access FOR libaccess_http.a
# For ./modules/access/libaccess_http.a
# src/misc/lib_libvlc_a-tls.o
cd ./modules/access
arm-linux-ar cru libaccess_http.a libaccess_http_a-http.o ../../src/misc/lib_libvlc_a-tls.o 
arm-linux-ranlib libaccess_http.a
cd ../../

echo Going to ./modules/access_filter FOR libaccess_filter_record.a
# FOR ./modules/access_filter/libaccess_filter_record.a
# src/video_output/lib_libvlc_a-video_text.o
cd ./modules/access_filter/
arm-linux-ar cru libaccess_filter_record.a libaccess_filter_record_a-record.o ../../src/video_output/lib_libvlc_a-video_text.o
arm-linux-ranlib libaccess_filter_record.a
cd ../../

echo Going to  ./modules/control FOR librc.a
# FOR ./modules/control/librc.a
# src/osd/lib_libvlc_a-osd.o src/osd/lib_libvlc_a-osd_parser.o
cd ./modules/control/
arm-linux-ar cru librc.a librc_a-rc.o ../../src/osd/lib_libvlc_a-osd.o ../../src/osd/lib_libvlc_a-osd_parser.o
arm-linux-ranlib librc.a
cd ../../

echo Going to ./modules/control FOR libtelnet.a
# FOR ./modules/control/libtelnet.a
# src/misc/lib_libvlc_a-vlm.o
cd ./modules/control/
arm-linux-ar cru libtelnet.a libtelnet_a-telnet.o ../../src/misc/lib_libvlc_a-vlm.o
arm-linux-ranlib libtelnet.a

echo Going to ./modules/control FOR libhotkeys.a
# FOR ./modules/control/libhotkeys.a
# src/video_output/lib_libvlc_a-video_widgets.o src/osd/lib_libvlc_a-osd_widgets.o
arm-linux-ar cru libhotkeys.a libhotkeys_a-hotkeys.o ../../src/video_output/lib_libvlc_a-video_widgets.o ../../src/osd/lib_libvlc_a-osd_widgets.o
arm-linux-ranlib libhotkeys.a
cd ../../

echo Going to ./modules/access_output FOR libaccess_output_http.a
# FOR ./modules/access_output/libaccess_output_http.a
# src/misc/lib_libvlc_a-httpd.o src/stream_output/lib_libvlc_a-acl.o
cd ./modules/access_output
arm-linux-ar cru libaccess_output_http.a libaccess_output_http_a-http.o libaccess_output_http_a-bonjour.o ../../src/misc/lib_libvlc_a-httpd.o ../../src/stream_output/lib_libvlc_a-acl.o
arm-linux-ranlib libaccess_output_http.a
cd ../../

echo Going to /home/dsl/Sources/ffmpeg-20051126/libavcodec FOR libavcodec.a
# FOR /home/dsl/Sources/ffmpeg-20051126/libavcodec/libavcodec.a
# comentamos de la linea 154 a la 159 y de la 343 a la 348 del fichero allcodecs.c

echo Going to  /home/dsl/Sources/mpeg2dec-0.4.1-cvs/libmpeg2/ FOR .libs/libmpeg2.a
# FOR /home/dsl/Sources/mpeg2dec-0.4.1-cvs/libmpeg2/.libs/libmpeg2.a
#libmpeg2/libmpeg2arch_la-cpu_accel.o libmpeg2/libmpeg2arch_la-cpu_state.o
cd /home/dsl/Sources/mpeg2dec-0.4.1-cvs/libmpeg2/
arm-linux-ar cru .libs/libmpeg2.a  alloc.o header.o decode.o slice.o motion_comp.o idct.o libmpeg2arch_la-cpu_accel.o libmpeg2arch_la-cpu_state.o
arm-linux-ranlib .libs/libmpeg2.a
cd ../../vlc-0.8.4a

echo Running make
ipkg/rules.zaurus 2> logMakeErr


More information about the vlc-devel mailing list