VOGONS


First post, by Jef

User metadata
Rank Newbie
Rank
Newbie

Today, I grabbed the latest DOSBox source (2009-01-14), installed SDL, SDL Net, SDL Sound, Libpng & Libz. Compiled DOSBox but I wanted to have static libraries so I followed this guide : http://www.spam-filter.de/dosbox/dosbox_0.65_for_intel_macs
I changed some file locations so they were correct on my Mac and then the error pops up
It's like :

Undefined symbols:
"GUI::Window::keyDown(GUI::Key const&)", referenced from:
vtable for ConfigurationWindowin libgui.a(sdl_gui.o)
vtable for AutoexecEditorin libgui.a(sdl_gui.o)
vtable for GUI::TransientWindowin libgui.a(sdl_gui.o)
vtable for SectionEditorin libgui.a(sdl_gui.o)

<same errors till the end>

SaveLangDialog::SaveLangDialog(GUI::Screen*, int, int, char const*)in libgui.a(sdl_gui.o)
SaveLangDialog::SaveLangDialog(GUI::Screen*, int, int, char const*)in libgui.a(sdl_gui.o)
ConfigurationWindow::actionExecuted(GUI::ActionEventSource*, GUI::String const&) in libgui.a(sdl_gui.o)
"_MIDIClientCreate", referenced from:
MidiHandler_coremidi::Open(char const*)in libgui.a(midi.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

For those who want to see the full error, download the attached .txt file...

Can someone help me with this ? thanks

Reply 1 of 2, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

did you use the

g++ -g -O2 -o dosbox dosbox.o cpu/libcpu.a debug/libdebug.a dos/libdos.a \
fpu/libfpu.a hardware/libhardware.a gui/libgui.a ints/libints.a \
misc/libmisc.a shell/libshell.a hardware/serialport/libserial.a \
/opt/local/lib/libSDL_mixer.a \
/opt/local/lib/libSDL_sound.a \
/opt/local/lib/libSDL_net.a \
/opt/local/lib/libmikmod.a \
/opt/local/lib/libmp3lame.a \
/opt/local/lib/libsmpeg.a \
/opt/local/lib/libvorbisenc.a \
/opt/local/lib/libvorbisfile.a \
/opt/local/lib/libvorbis.a \
/opt/local/lib/libogg.a \
/opt/local/lib/libpng.a \
/opt/local/lib/libz.a \
/opt/local/lib/libSDL.a \
/opt/local/lib/libSDLmain.a \
-framework OpenGL \
-framework QuickTime \
-framework AudioUnit \
-framework IOKit \
-framework Cocoa \
-framework Carbon \
-lm

Posted on that website ?
As that isn't correct for 0.72cvs (the instructions there are for 0.65
You will need to add a few lines to it.

one thing is you need to add:

libs/gui_tk/libgui_tk.a

(to the top after libserial.a
and probably these to the end

 -framework CoreMidi -framework AudioUnit -framework AudioToolbox

but really don't use instructions for an old version when compiling the new version.

Water flows down the stream
How to ask questions the smart way!

Reply 2 of 2, by Jef

User metadata
Rank Newbie
Rank
Newbie

UPDATE It works now, I accedentally used the oldest SDL_sound and not the newest. Thanks Qbix!

Yes indeed I used that list but I modified it a bit and now I've added your stuff and it looks like this :

  • g++ -g -O2 -o dosbox dosbox.o cpu/libcpu.a debug/libdebug.a dos/libdos.a \
    fpu/libfpu.a hardware/libhardware.a gui/libgui.a ints/libints.a \
    misc/libmisc.a shell/libshell.a hardware/serialport/libserial.a libs/gui_tk/libgui_tk.a \
    /usr/local/lib/libSDL_sound.a \
    /usr/local/lib/libSDL_net.a \
    /usr/local/lib/libpng.a \
    /usr/local/lib/libz.a \
    /usr/local/lib/libSDL.a \
    /usr/local/lib/libSDLmain.a \
    -framework OpenGL \
    -framework QuickTime \
    -framework AudioUnit \
    -framework IOKit \
    -framework Cocoa \
    -framework Carbon \
    -framework CoreMidi \
    -framework AudioUnit \
    -framework AudioToolbox \
    -lm

This still gives an error but it's massively smaller, here's the full errror :

Undefined symbols:
"_Sound_Seek", referenced from:
CDROM_Interface_Image::AudioFile::read(unsigned char*, int, int)in libdos.a(cdrom_image.o)
CDROM_Interface_Image::AudioFile::getLength() in libdos.a(cdrom_image.o)
ld: symbol(s) not found
collect2: ld returned 1 exit status

[/b]