id summary reporter owner description type status priority component version resolution keywords cc game 2502 Linker error when compiling minimal ScummVM eriktorbjorn fingolfin "{{{#!Markdown While looking at a BS2 bug a while ago, I tried to compile a minimal version with only the BS2 engine included. At the time I had trouble building it, but since someone else helped me diagnose the bug, I didn't look any further into it. Now I decided to try again, using the most recent SVN snapshot. This is the configure command I used: ./configure --disable-scumm --disable-simon \--disable-sky --disable-sword1 --disable-queen \--disable-saga --disable-gob --disable-kyra \--disable-mt32emu --disable-scalers \--disable-hq-scalers --disable-mad --disable-flac \--disable-fluidsynth --disable-nasm Which for me meant I ended up with the following features: Engines: Broken Sword 2 \(w/ mpeg2 cutscenes\) Backend... sdl Looking for sdl-config... /usr/bin/sdl-config Compiling seemed to go well, all the way to the final linking, which produced the following output, which I'm not sure quite how to interpret: g++ backends/sdl/events.o backends/sdl/graphics.o backends/sdl/sdl.o base/libbase.a engines/sword2/libsword2.a gui/libgui.a graphics/libgraphics.a sound/libsound.a backends/libbackends.a common/libcommon.a -lvorbisfile -lvorbis -logg -lasound -lz -lmpeg2 -L/usr/lib -lSDL -lpthread -o scummvm backends/libbackends.a\(alsa.o\): In function \`MidiDriver\_ALSA::close\(\)':backends/midi/alsa.cpp:137: undefined reference to \`MidiDriver\_MPU401::close\(\)' backends/libbackends.a\(alsa.o\): In function \`MidiDriver\_ALSA':backends/midi/alsa.cpp:77: undefined reference to \`MidiDriver\_MPU401::MidiDriver\_MPU401\(\)' :backends/midi/alsa.cpp:77: undefined reference to \`MidiDriver\_MPU401::MidiDriver\_MPU401\(\)' backends/libbackends.a\(alsa.o\):\(.gnu.linkonce.r.\_ZTI15MidiDriver\_ALSA\[typeinfo for MidiDriver\_ALSA\]+0x8\): undefined reference to \`typeinfo for MidiDriver\_MPU401' backends/libbackends.a\(alsa.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_ALSA\[vtable for MidiDriver\_ALSA\]+0x1c\): undefined reference to \`MidiDriver\_MPU401::property\(int, unsigned int\)' backends/libbackends.a\(alsa.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_ALSA\[vtable for MidiDriver\_ALSA\]+0x30\): undefined reference to \`MidiDriver\_MPU401::setTimerCallback\(void\*, void \(\*\)\(void\*\)\)' backends/libbackends.a\(alsa.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_ALSA\[vtable for MidiDriver\_ALSA\]+0x38\): undefined reference to \`MidiDriver\_MPU401::allocateChannel\(\)' backends/libbackends.a\(alsa.o\): In function \`~MidiDriver\_MPU401':./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' :./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' backends/libbackends.a\(null.o\): In function \`MidiDriver\_NULL':backends/midi/null.cpp:26: undefined reference to \`MidiDriver\_MPU401::MidiDriver\_MPU401\(\)' backends/libbackends.a\(null.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_NULL\[vtable for MidiDriver\_NULL\]+0x14\): undefined reference to \`MidiDriver\_MPU401::close\(\)' backends/libbackends.a\(null.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_NULL\[vtable for MidiDriver\_NULL\]+0x1c\): undefined reference to \`MidiDriver\_MPU401::property\(int, unsigned int\)' backends/libbackends.a\(null.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_NULL\[vtable for MidiDriver\_NULL\]+0x30\): undefined reference to \`MidiDriver\_MPU401::setTimerCallback\(void\*, void \(\*\)\(void\*\)\)' backends/libbackends.a\(null.o\):\(.gnu.linkonce.r.\_ZTV15MidiDriver\_NULL\[vtable for MidiDriver\_NULL\]+0x38\): undefined reference to \`MidiDriver\_MPU401::allocateChannel\(\)' backends/libbackends.a\(null.o\):\(.gnu.linkonce.r.\_ZTI15MidiDriver\_NULL\[typeinfo for MidiDriver\_NULL\]+0x8\): undefined reference to \`typeinfo for MidiDriver\_MPU401' backends/libbackends.a\(null.o\): In function \`~MidiDriver\_MPU401':./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' :./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' backends/libbackends.a\(seq.o\): In function \`MidiDriver\_SEQ::close\(\)':backends/midi/seq.cpp:97: undefined reference to \`MidiDriver\_MPU401::close\(\)' backends/libbackends.a\(seq.o\): In function \`MidiDriver\_SEQ':backends/midi/seq.cpp:56: undefined reference to \`MidiDriver\_MPU401::MidiDriver\_MPU401\(\)' :backends/midi/seq.cpp:56: undefined reference to \`MidiDriver\_MPU401::MidiDriver\_MPU401\(\)' backends/libbackends.a\(seq.o\):\(.gnu.linkonce.r.\_ZTI14MidiDriver\_SEQ\[typeinfo for MidiDriver\_SEQ\]+0x8\): undefined reference to \`typeinfo for MidiDriver\_MPU401' backends/libbackends.a\(seq.o\):\(.gnu.linkonce.r.\_ZTV14MidiDriver\_SEQ\[vtable for MidiDriver\_SEQ\]+0x1c\): undefined reference to \`MidiDriver\_MPU401::property\(int, unsigned int\)' backends/libbackends.a\(seq.o\):\(.gnu.linkonce.r.\_ZTV14MidiDriver\_SEQ\[vtable for MidiDriver\_SEQ\]+0x30\): undefined reference to \`MidiDriver\_MPU401::setTimerCallback\(void\*, void \(\*\)\(void\*\)\)' backends/libbackends.a\(seq.o\):\(.gnu.linkonce.r.\_ZTV14MidiDriver\_SEQ\[vtable for MidiDriver\_SEQ\]+0x38\): undefined reference to \`MidiDriver\_MPU401::allocateChannel\(\)' backends/libbackends.a\(seq.o\): In function \`~MidiDriver\_MPU401':./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' :./sound/mpu401.h:71: undefined reference to \`vtable for MidiDriver\_MPU401' collect2: ld returned 1 exit status make: \*\*\* \[scummvm\] Error 1 }}} {{{#!div style=""font-size: 75%"" Ticket imported from: !#1435221. Ticket imported from: bugs/2502. }}}" defect closed normal Port: Linux fixed