Hi, i managed to compile avifile 0.6 on mandrake and wanted to give a short report:
Problem 1) Qtlibs not found although they where there configure balks with the error: /root/tmp/ccSpT2dr.o: In function `main': /root/Packets/avi/avifile-0.6.0.20011003/foo/conftest.C:4: undefined reference to `QMovie::QMovie()' /root/Packets/avi/avifile-0.6.0.20011003/foo/conftest.C:5: undefined reference to `QMovie::setSpeed(int)' /root/Packets/avi/avifile-0.6.0.20011003/foo/conftest.C:6: undefined reference to `QMovie::~QMovie()' /root/Packets/avi/avifile-0.6.0.20011003/foo/conftest.C:6: undefined reference to `QMovie::~QMovie()' collect2: ld returned 1 exit status As someone already posted to the list, this is a gcc-3.0.1 Problem. you can install gcc-2.96 parallel to 3.0.1, the links in /etc/alternatives point to the deafault (2.96 or 3.0.1) binaries. Then apparently it is not sufficient to only link -lqt-mt, since qt-mt needs stuff from qt and fails to load it automatically. So make it link -lqt too: export CC=gcc-2.96 export CXX=g++-2.96 export LIBS=-lqt should do the job, to be sure also do export GCC=gcc-2.96 export GCXX=g++-2.96 export LDFLAGS=-lqt then remove the config.cache if there is one and do ./configure --with-qt-dir=/usr/lib/qt2 or whereever you qtlib is if that isn't found automatically. Problem 2) failed to compile dsputil_mmx_avg.lo this is the same as mentioned in http://www.mail-archive.com/avifile%40prak.org/msg00883.html and throws a lot of errors like In file included from dsputil_mmx.c:49: dsputil_mmx_avg.h: In function `put_pixels_x2_3dnow': dsputil_mmx_avg.h:51: Can't find a register in class `GENERAL_REGS' while reloading `asm'. after reading http://gcc.gnu.org/ml/gcc-bugs/2000-04/msg00773.html i gave -O2 a try and it worked. I think it happens when many arguments are passed to/from an assembler-part, so additional registered are needed/preferred for argument passing. One can either redo the compile for the specific files where errors occur with -O2 or -shared, and continue making, or before configure do: export CFLAGS=-O2 export CXXFLAGS=-O2 note that compiling with -O2 might trigger another error with some libc (see faq) but for me it didn't (or i didn't run into it yet). to sumarize: export CC=gcc-2.96 export CXX=g++-2.96 export LIBS=-lqt export CFLAGS=-O2 export CXXFLAGS=-O2 export GCC=gcc-2.96 export GCXX=g++-2.96 export LDFLAGS=-lqt rm config.cache ./configure --with-qt-dir=/usr/lib/qt2 make make install This did the job for me. I used: avifile-0.6.0.20011013 gcc-2.96-0.65mdk gcc-c++-2.96-0.65mdk binutils-2.11.90.0.8-6mdk libqt2-static-devel-2.3.1-15mdk libqt2-devel-2.3.1-15mdk libqt2-2.3.1-15mdk libimlib1-devel-1.9.11-7mdk libimlib1-1.9.11-7mdk libpng3-1.2.0-3mdk libpng3-devel-1.2.0-3mdk The qt-lib seems to be linked against the imlib and that again against libpng. Note that libimlib1-devel-1.9.11-7mdk is linked against libpng3 while libimlib1-devel-1.9.11-5mdk links vs. libpng2. See to it, that qt-lib, imlib and libpng are consistent, also later updating to newer imlib probably means compiling again. I do *NOT* recommend updating imlib if you didn't yet, until the executables you need are linked against that new imlib too, since all executables linked against the previous (libimlib1-devel-1.9.11-5mdk and older, don't know about 6mdk) version will then show up a lot of errors (they used headers from libpng2 and then have to work with libpng3) to see what is affected do 'rpm -e --test libimlib' and 'rpm -e --test libpng2' anything that shows up in both lists probably will spit a lot of annnoying errors after updateing beyond libimlib1-devel-1.9.11-7mdk. (enlightenment would bugger me with lots of errors and no backgroundimage). But the qt-lib that comes with the mdk 8.1-pre should do the job just fine, no need to ask for that trouble until Mandrake sorted it out and the rpms are consistent again. _______________________________________________ Avifile mailing list [EMAIL PROTECTED] http://prak.org/mailman/listinfo/avifile
