fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] trying to make fluidsynth on mac os x


From: Josh Green
Subject: Re: [fluid-dev] trying to make fluidsynth on mac os x
Date: 29 May 2003 12:39:13 -0700

On Thu, 2003-05-29 at 12:06, Joe Corneli wrote:
> Hi Josh,
> 
> The latest: (we seem to have gotten pretty far this time, we're at
> the linker...)  I have gnugetopt installed on my system...  I guess maybe
> I need some other stuff installed?
> 
> Joe
> 
> short context:
> 
> ld: Undefined symbols:
> _getopt_long
> make[2]: *** [fluidsynth] Error 1
> make[1]: *** [all] Error 2
> make: *** [all-recursive] Error 1
> 
> a screenful of context:
> 
> ranlib .libs/libfluidsynth.a
> ranlib: file: .libs/libfluidsynth.a(fluid_alsa.o) has no symbols
> ranlib: file: .libs/libfluidsynth.a(fluid_jack.o) has no symbols
> ranlib: file: .libs/libfluidsynth.a(fluid_ladspa.o) has no symbols
> ranlib: file: .libs/libfluidsynth.a(fluid_midishare.o) has no symbols
> ranlib: file: .libs/libfluidsynth.a(fluid_oss.o) has no symbols


These warnings are probably okay, since those object files correspond to
stuff that would probably only be compiled for Linux, except for perhaps
the LADSPA stuff which might work on OSX? Not critical to operation of
FluidSynth though.


> ld: warning suggest use of -bind_at_load, as lazy binding may result in
> errors or different symbols being used
> symbol _tgetent used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_termcap.lo) not from earlier dynamic
> library /sw/lib/libncurses.5.dylib(lib_termcap.lo)
> symbol _tgetstr used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_termcap.lo) not from earlier dynamic
> library /sw/lib/libncurses.5.dylib(lib_termcap.lo)
> symbol _tgetnum used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_termcap.lo) not from earlier dynamic
> library /sw/lib/libncurses.5.dylib(lib_termcap.lo)
> symbol _tgetflag used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_termcap.lo) not from earlier dynamic
> library /sw/lib/libncurses.5.dylib(lib_termcap.lo)
> symbol __nc_nulls_sent used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol __nc_outch used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol _putp used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol _ospeed used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol __nc_flush used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol _delay_output used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol _tputs used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tputs.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tputs.lo)
> symbol _tgoto used from dynamic library
> /sw/lib/libncurses.dylib.5(lib_tgoto.lo) not from earlier dynamic library
> /sw/lib/libncurses.5.dylib(lib_tgoto.lo)

Not sure about that lot. Perhaps we can ignore it.

> ld: Undefined symbols:
> _getopt_long

Its failing on the fluidsynth command shell utility link stage, which
means that the fluidsynth library linked successfully :) On Linux the
gnu getopt stuff is built into the standard glibc library, it doesn't
sound like this is the case on OS X. I'm guessing that you probably have
to link it explicitly in. The trick is in finding what the library name
is. If you know where the gnu getopt stuff resides, look for a file
named something like "libgetopt.a" or ?? Then just take whatever name it
happens to be, remove the "lib" from the front and the ".a" from the end
(just "getopt" in that example) and add it to the link stage like
"-lgetopt". You can re-run the link stage without having to remake the
whole mess. Make sure you are in the src/ directory in the FluidSynth
build tree and then run this command (replace the -lgetopt at the end
with whatever library name you found), also make sure this gets input as
one command:

gcc -O2 -fomit-frame-pointer -funroll-all-loops -finline-functions -Wall
-W -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align
-Wstrict-prototypes -Wno-unused -Winline -o .libs/fluidsynth
fluidsynth.o -L/sw/lib -L./.libs -lfluidsynth -lm -lreadline -lncurses
-lpthread -lgetopt


If this works, then just re-run make and it should continue with the
build, since the fluidsynth utility link will be satisfied.


> make[2]: *** [fluidsynth] Error 1
> make[1]: *** [all] Error 2
> make: *** [all-recursive] Error 1
> 

Thanks for prevailing with getting FluidSynth running in OS X, it will
help other OS X users as well. Some time I'd like to look into getting
my application, Swami (http://swami.sourceforge.net) working on this
platform. I'm sure this is probably rather easy to do, but would require
getting GTK1.2 running. If I had my hands on an OS X box I'd probably do
it :) See ya.
        Josh





reply via email to

[Prev in Thread] Current Thread [Next in Thread]