[vlc-devel] Re: - cross compile problems

Jean-Paul Saman jean-paul.saman at planet.nl
Wed May 10 13:07:03 CEST 2006


You can also specify AR=arm-linux-ar make

Juan Antonio Martinez Navarro wrote:
> Hi Yiannis Yiakoumis,
> 
> The problem you have is because when you use arm-linux-ar to join some
> objects into a file. Some files aren't included and you have the
> definition of the methods in that file but you don't have the
> implementation of them.
> 
> To solve the problem, i make an script. The script adds those files that
> you need with arm-linux-ar.
> 
> What you have to do is the next.
> 
> You have to find where is the implementation of the method undefined.
> You have to go to the directory where you compile
> liblibmpeg2_a-libmpeg2.o.
> 
> Remove it, and type make.
> 
> You will see how it builds liblibmpeg2_a-libmpeg2.o.
> 
> Copy the line where appears arm-linux-ar and add the object of the
> implementation of the method. And after that you have to type the other
> command, arm-linux-ranlib ...
> 
> I send you the script I've made. I hope you find it useful.
> 
> 
> 
> El mié, 10-05-2006 a las 13:02 +0300, Yiannis Yiakoumis escribió:
> 
>>Hey everybody, 
>>
>>Once again I have problems when cross-compiling vlc for arm. It seems that some libraries do not include specific definitions, and I cannot understand why.
>>I get a lot of errors. I just post here one case (with file vout_synchro.h), and I hope that if that is fixed, I can go further by myself. 
>>
>>lib/libvlc.a(lib_libvlc_a-modules.o)(.text+0xe94): In function `__module_LoadBuiltins':
>>: undefined reference to `vlc_entry__opie'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x344): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroReset'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x478): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroReset'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x4bc): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroNewPicture'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x4c4): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDecode'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x4d4): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroEnd'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x5a8): In function `DecodeBlock':
>>: undefined reference to `__vout_SynchroInit'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x5b8): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroRelease'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x6a0): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroNewPicture'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x704): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroChoose'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x730): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDecode'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x778): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroTrash'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x7fc): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroNewPicture'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x804): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDecode'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x814): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroEnd'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x870): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroNewPicture'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x884): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroTrash'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x890): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDecode'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x98c): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroEnd'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0x9a8): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDate'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0xb4c): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroNewPicture'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0xb54): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroDecode'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0xb64): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroEnd'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0xb6c): In function `DecodeBlock':
>>: undefined reference to `vout_SynchroReset'
>>/modules/codec/liblibmpeg2.a(liblibmpeg2_a-libmpeg2.o)(.text+0xfc0): In function `CloseDecoder':
>>: undefined reference to `vout_SynchroRelease'
>>
>>
>>However, in file ./modules/codec/libmpeg2.c file vout_synchro.h is included (which file have all these definitions, in terms of VLC_EXPORT(........).
>>
>>I don't have any idea what can cause this error and where to search. 
>>Any idea would be really helpful.
>>
>>Thanks a lot,
>>Yiannis
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 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

-- 
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