Hi all, I am following the README.arm from Simon to cross compile linphone from my PC to an arm architecture. But i encounter problems about the ogg header. I have this following error when i write this line : ./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static --enable-fixed-point --enable-arm-asm the error is : . . make[2]: entrant dans le r?pertoire ? /arm/speex-1.1.11/src ? if arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../include -I.. -I/root/armbuild/usr/include -O2 -fno-exceptions -O2 -fno-exceptions -MT speexenc.o -MD -MP -MF ".deps/speexenc.Tpo" -c -o speexenc.o speexenc.c; \ then mv -f ".deps/speexenc.Tpo" ".deps/speexenc.Po"; else rm -f ".deps/speexenc.Tpo"; exit 1; fi speexenc.c:49:21: ogg/ogg.h: Aucun fichier ou r?pertoire de ce type speexenc.c:68: error: parse error before '*' token speexenc.c: In function `oe_write_page': speexenc.c:71: error: `page' undeclared (first use in this function) speexenc.c:71: error: (Each undeclared identifier is reported only once speexenc.c:71: error: for each function it appears in.) speexenc.c:71: error: `fp' undeclared (first use in this function) speexenc.c: In function `main': speexenc.c:267: error: `ogg_stream_state' undeclared (first use in this function) speexenc.c:267: error: parse error before "os" speexenc.c:268: error: `ogg_page' undeclared (first use in this function) speexenc.c:269: error: `ogg_packet' undeclared (first use in this function) speexenc.c:438: error: `os' undeclared (first use in this function) speexenc.c:632: error: `op' undeclared (first use in this function) speexenc.c:648: error: `og' undeclared (first use in this function) make[2]: *** [speexenc.o] Erreur 1 make[2]: quittant le r?pertoire ? /arm/speex-1.1.11/src ? make[1]: *** [all-recursive] Erreur 1 make[1]: quittant le r?pertoire ? /arm/speex-1.1.11 ? make: *** [all] Erreur 2 I had to follow this rules but i dont know how to solve the problem : First you need to remove ogg headers from your build system to avoid a dirty conflict between your build machine binaries and the arm binaries. They are usually in a libogg-dev package (rpm or deb). So, i have cross compiled libogg and put the ogg.h in the /usr/include/ogg/ directory of my host. and now i have this following error : /usr/lib/libogg.so: could not read symbols: Invalid operation collect2: ld returned 1 exit status make[2]: *** [speexenc] Erreur 1 make[2]: quittant le r?pertoire ? /usr/src/linphone/arm/speex-1.1.6/src ? make[1]: *** [all-recursive] Erreur 1 make[1]: quittant le r?pertoire ? /usr/src/linphone/arm/speex-1.1.6 ? make: *** [all] Erreur 2 Do i miss somethings ? I had to copy or remove some ogg headers ? Thanks for your help. Regards Erwan. _________________________________________________________________ Cr?ez gratuitement votre disque dur virtuel Windows Live SkyDrive ! http://skydrive.live.com
ogg.k.ogg.k at googlemail.com
2008-Apr-01 10:03 UTC
[ogg-dev] problem with some ogg header files with speex
> First you need to remove ogg headers from your build system to avoid a dirty > conflict between > your build machine binaries and the arm binaries. They are usually in a > libogg-dev package (rpm or deb).That sounds wrong, gcc should be pointed to the cross compiled includes/libs anyway, finding them before /usr/include.> /usr/lib/libogg.so: could not read symbols: Invalid operationThis is likely because the format of that file is your host's format, rather the ARM format. If you've started replacing files, you'd need to replace this one as well. And the .a archive too, probably.> Do i miss somethings ? I had to copy or remove some ogg headers ?There has to be another way. You mentioned following a doc, does it not say some env variables should be set in a specific way ?
Hi, Thanks for your help. It's true. I had to point files to the arm files. i have modified my command line by adding --with-ogg-libraries=/armbuild/lib/ . Here is the ogg.h file compiled for arm. But now i have an other error : source='speexdec.c' object='speexdec.o' libtool=no \ depfile='.deps/speexdec.Po' tmpdepfile='.deps/speexdec.TPo' \ depmode=gcc3 /bin/sh ../depcomp \ arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../libspeex -I/usr/include -O2 -fno-exceptions -O2 -fno-exceptions -c `test -f 'speexdec.c' || echo './'`speexdec.c /usr/include/bits/mathinline.h: In function `__atan2l': /usr/include/bits/mathinline.h:445: error: unknown register name `st(1)' in `asm' make[2]: *** [speexdec.o] Erreur 1 make[2]: quittant le r?pertoire ? /usr/src/linphone/arm2/arm/speex-1.1.6/src ? make[1]: *** [all-recursive] Erreur 1 make[1]: quittant le r?pertoire ? /usr/src/linphone/arm2/arm/speex-1.1.6 ? make: *** [all] Erreur 2 I think i had to solve it by the same way above ? But what is the variable i had to modify ? Regards, Erwan ----------------------------------------> Date: Tue, 1 Apr 2008 10:03:36 +0000 > From: ogg.k.ogg.k at googlemail.com > To: mout551 at hotmail.fr > Subject: Re: [ogg-dev] problem with some ogg header files with speex > CC: ogg-dev at xiph.org > >> First you need to remove ogg headers from your build system to avoid a dirty >> conflict between >> your build machine binaries and the arm binaries. They are usually in a >> libogg-dev package (rpm or deb). > > That sounds wrong, gcc should be pointed to the cross compiled includes/libs > anyway, finding them before /usr/include. > >> /usr/lib/libogg.so: could not read symbols: Invalid operation > > This is likely because the format of that file is your host's format, rather the > ARM format. If you've started replacing files, you'd need to replace this one > as well. And the .a archive too, probably. > >> Do i miss somethings ? I had to copy or remove some ogg headers ? > > There has to be another way. You mentioned following a doc, does it not > say some env variables should be set in a specific way ?_________________________________________________________________ Classez, retouchez et partagez vos photos gratuitement avec Galerie de Photos Windows Live ! http://www.windowslive.fr/hotmail/default.asp