rpmbuild problem during g++ linking - undefined references ?

David Timms dtimms at iinet.net.au
Wed Nov 14 13:52:24 UTC 2007

Hi, I'm trying to build an rpm for Fedora for DVBCut. I get a fair way 
through the process, but erroring out with:

g++ -o src/moc_dvbcut.o -c -O3 -Wall -D_FILE_OFFSET_BITS=64 
-I/usr/lib/qt-3.3/include -I/usr/include src/moc_dvbcut.cpp
/usr/lib/qt-3.3/bin/moc -o src/moc_exportdialog.cpp src/exportdialog.h

g++ -o src/moc_exportdialog.o -c -O3 -Wall -D_FILE_OFFSET_BITS=64 
-I/usr/lib/qt-3.3/include -I/usr/include src/moc_exportdialog.cpp
/usr/lib/qt-3.3/bin/moc -o src/moc_progressstatusbar.cpp 

g++ -o src/moc_progressstatusbar.o -c -O3 -Wall -D_FILE_OFFSET_BITS=64 
-I/usr/lib/qt-3.3/include -I/usr/include src/moc_progressstatusbar.cpp
/usr/lib/qt-3.3/bin/moc -o src/moc_progresswindow.cpp src/progresswindow.h

g++ -o src/moc_progresswindow.o -c -O3 -Wall -D_FILE_OFFSET_BITS=64 
-I/usr/lib/qt-3.3/include -I/usr/include src/moc_progresswindow.cpp

g++ -o bin/dvbcut src/avframe.o src/buffer.o 
src/differenceimageprovider.o src/dvbcut.o src/eventlistitem.o 
src/exportdialog.o src/imageprovider.o src/index.o src/lavfmuxer.o 
src/logoutput.o src/main.o src/mpegmuxer.o src/mpgfile.o src/playaudio.o 
src/progressstatusbar.o src/progresswindow.o src/psfile.o src/pts.o 
src/settings.o src/streamdata.o src/tsfile.o src/uic_dvbcutbase.o 
src/moc_dvbcutbase.o src/uic_mplayererrorbase.o 
src/moc_mplayererrorbase.o src/uic_progresswindowbase.o 
src/moc_progresswindowbase.o src/uic_exportdialogbase.o 
src/moc_exportdialogbase.o src/moc_dvbcut.o src/moc_exportdialog.o 
src/moc_progressstatusbar.o src/moc_progresswindow.o 
-L/usr/lib/qt-3.3/lib -L/usr/lib -lao -lqt-mt -lavformat -lavcodec -lavutil

{ the two -L paths definitely contain the -l{lib}xyz so's. }

src/avframe.o: In function `avframe::avframe()':
avframe.cpp:(.text+0x2e): undefined reference to `avcodec_alloc_frame()'
src/avframe.o: In function `avframe::avframe()':
avframe.cpp:(.text+0x6e): undefined reference to `avcodec_alloc_frame()'
src/avframe.o: In function `avframe::getqimage(bool, int)':
avframe.cpp:(.text+0x13c): undefined reference to 
`avpicture_get_size(int, int, int)'
avframe.cpp:(.text+0x16f): undefined reference to `avcodec_alloc_frame()'
avframe.cpp:(.text+0x19d): undefined reference to 
`avpicture_fill(AVPicture*, unsigned char*, int, int, int)'
avframe.cpp:(.text+0x1cb): undefined reference to 
`img_convert(AVPicture*, int, AVPicture const*, int, int, int)'
avframe.cpp:(.text+0x271): undefined reference to `av_free(void*)'
src/avframe.o: In function `avframe::avframe(AVFrame*, AVCodecContext*)':
avframe.cpp:(.text+0x320): undefined reference to `avcodec_alloc_frame()'

The app {dvbcut} website installer procedure says you need:
     *  Qt, version 3
     * SCons (a modern build utility, replacing automake, autoconf and make)
     * libao (optional, for sound output)
     * libmad and liba52 for MP2 and AC3 decoding, respectively.

On a Debian system, the following packages should do the job: 
libqt3-mt-dev qt3-dev-tools scons libao-dev libmad0-dev liba52-0.7.4-dev.

I think I have the fedora equivalents installed: qt scons libao, libmad, 
a52dec and devel etc. Attached is the generated build script {you'll see 
my comments}. btw: how can I echo $flags ?

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: rpm-tmp.55611
URL: <http://listman.redhat.com/archives/fedora-list/attachments/20071115/73ef5b33/attachment-0001.ksh>

More information about the fedora-list mailing list