I'm trying to get FluidSynth building under windows, to fix bugs and
test it. My experience with building under WIN32 in general is pretty
minimal. I've fixed a number of compile time build issues, but the
link stage of building fluidsynth.exe fails with a bunch of undefined
symbols of the form _imp__* which are all FluidSynth public functions
which should be found in libfluidsynth.
From what I can tell, only a libfluidsynth.a has been built, but I see
no sign of the .dll (or whatever else is supposed to be the shared
library). The link stage looks like its trying to statically link
fluidsynth.exe to libfluidsynth.a.
I think this is probably where things are going wrong, but I'm not sure
why no dynamic library was built.
If anyone has any helpful hints, I would really appreciate it. I'd
like to test some of the changes I added to the winmidi driver and make
sure things are working properly before releasing 1.1.0.
Regards,
Josh
Log output of blow up:
$ make
make all-am
make[1]: Entering directory `/home/josh/code/fluidsynth/src'
/bin/sh ../libtool --tag=CC --mode=link gcc -Wall -mms-bitfields
-O2 -fomit-
frame-pointer -funroll-all-loops -finline-functions -Wall -W
-Wpointer-arith -Wb
ad-function-cast -Wcast-qual -Wcast-align -Wstrict-prototypes -Winline
-Wno-unus
ed-parameter -Wl,--as-needed -o fluidsynth.exe fluidsynth-fluidsynth.o
libfluid
synth.la
libtool: link: gcc -Wall -mms-bitfields -O2 -fomit-frame-pointer
-funroll-all-lo
ops -finline-functions -Wall -W -Wpointer-arith -Wbad-function-cast
-Wcast-qual
-Wcast-align -Wstrict-prototypes -Winline -Wno-unused-parameter
-Wl,--as-needed
-o .libs/fluidsynth.exe fluidsynth-fluidsynth.o
./.libs/libfluidsynth.a -LC:/Mi
nGW/lib -ldsound -lwinmm -lws2_32 -lgthread-2.0 -lglib-2.0 -lintl
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x7d): undefined reference
to `_imp_
_fluid_settings_get_type'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xf0): undefined reference
to `_imp_
_fluid_settings_setnum'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x115): undefined reference
to `_imp
__fluid_settings_setint'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x132): undefined reference
to `_imp
__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1ed): undefined reference
to `_imp
__fluid_settings_getnum_range'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1fa): undefined reference
to `_imp
__fluid_settings_getnum_default'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x23d): undefined reference
to `_imp
__fluid_settings_getint_range'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x24a): undefined reference
to `_imp
__fluid_settings_getint_default'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x32d): undefined reference
to `_imp
__fluid_settings_getstr_default'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x33c): undefined reference
to `_imp
__fluid_settings_option_count'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x396): undefined reference
to `_imp
__fluid_settings_foreach_option_alpha'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x54b): undefined reference
to `_imp
__fluid_audio_driver_get_names'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x612): undefined reference
to `_imp
__fluid_midi_driver_get_names'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x743): undefined reference
to `_imp
__new_fluid_settings'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x81f): undefined reference
to `_imp
__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x8bc): undefined reference
to `_imp
__fluid_settings_setint'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x8cb): undefined reference
to `_imp
__new_fluid_synth'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x8e8): undefined reference
to `_imp
__new_fluid_cmd_handler'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x928): undefined reference
to `_imp
__fluid_is_soundfont'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x93b): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x96e): undefined reference
to `_imp
__fluid_is_soundfont'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x994): undefined reference
to `_imp
__fluid_synth_sfload'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x9ba): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x9d6): undefined reference
to `_imp
__fluid_is_soundfont'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x9fc): undefined reference
to `_imp
__fluid_synth_sfload'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xa26): undefined reference
to `_imp
__fluid_is_soundfont'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xa48): undefined reference
to `_imp
__fluid_synth_sfload'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xa82): undefined reference
to `_imp
__fluid_is_soundfont'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xa97): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xb3a): undefined reference
to `_imp
__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xb60): undefined reference
to `_imp
__fluid_source'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xba2): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xbd3): undefined reference
to `_imp
__fluid_player_add'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xc1d): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xc4e): undefined reference
to `_imp
__fluid_player_add'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xcc1): undefined reference
to `_imp
__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xcf2): undefined reference
to `_imp
__fluid_player_add'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xd2b): undefined reference
to `_imp
__new_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xdbc): undefined reference
to `_imp
__fluid_player_join'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xdcb): undefined reference
to `_imp
__delete_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xdee): undefined reference
to `_imp
__delete_fluid_midi_driver'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xdfd): undefined reference
to `_imp
__delete_fluid_midi_router'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xe16): undefined reference
to `_imp
__delete_fluid_audio_driver'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xe2f): undefined reference
to `_imp
__delete_fluid_synth'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xe48): undefined reference
to `_imp
__delete_fluid_settings'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xe6b): undefined reference
to `_imp
__new_fluid_audio_driver'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xea4): undefined reference
to `_imp
__fluid_midi_dump_postrouter'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xeb7): undefined reference
to `_imp
__new_fluid_midi_router'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xede): undefined reference
to `_imp
__fluid_synth_set_midi_router'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xefb): undefined reference
to `_imp
__fluid_midi_dump_prerouter'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xf0e): undefined reference
to `_imp
__new_fluid_midi_driver'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xf55): undefined reference
to `_imp
__delete_fluid_cmd_handler'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0xf78): undefined reference
to `_imp
__fluid_synth_sfload'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1062): undefined
reference to `_im
p__fluid_settings_setint'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x122b): undefined
reference to `_im
p__fluid_settings_setnum'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x127a): undefined
reference to `_im
p__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x133c): undefined
reference to `_im
p__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x13c5): undefined
reference to `_im
p__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x13fa): undefined
reference to `_im
p__fluid_player_add'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1408): undefined
reference to `_im
p__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x143d): undefined
reference to `_im
p__fluid_player_add'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x146f): undefined
reference to `_im
p__fluid_player_play'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x14ce): undefined
reference to `_im
p__fluid_settings_setstr'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x14e6): undefined
reference to `_im
p__fluid_usershell'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1503): undefined
reference to `_im
p__new_fluid_file_renderer'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x152b): undefined
reference to `_im
p__fluid_player_get_status'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1537): undefined
reference to `_im
p__fluid_file_renderer_process_block'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1544): undefined
reference to `_im
p__delete_fluid_file_renderer'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1568): undefined
reference to `_im
p__fluid_player_stop'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1578): undefined
reference to `_im
p__fluid_is_midifile'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x15bc): undefined
reference to `_im
p__fluid_get_userconf'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x15d2): undefined
reference to `_im
p__fluid_get_sysconf'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1627): undefined
reference to `_im
p__fluid_synth_handle_midi_event'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1631): undefined
reference to `_im
p__fluid_midi_router_handle_midi_event'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1697): undefined
reference to `_im
p__new_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x16bb): undefined
reference to `_im
p__new_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x16dd): undefined
reference to `_im
p__new_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x173e): undefined
reference to `_im
p__new_fluid_player'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x17f1): undefined
reference to `_im
p__fluid_settings_foreach_alpha'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x17fc): undefined
reference to `_im
p__fluid_file_renderer_get_type_names'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1818): undefined
reference to `_im
p__fluid_file_renderer_get_endian_names'
fluidsynth-fluidsynth.o:fluidsynth.c:(.text+0x1858): undefined
reference to `_im
p__fluid_file_renderer_get_format_names'
collect2: ld returned 1 exit status
make[1]: *** [fluidsynth.exe] Error 1
make[1]: Leaving directory `/home/josh/code/fluidsynth/src'
make: *** [all] Error 2