[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[fluid-dev] Re: fluidsynth and jack on mac
From: |
Ebrahim Mayat |
Subject: |
[fluid-dev] Re: fluidsynth and jack on mac |
Date: |
Wed, 10 Mar 2004 20:19:31 +0200 |
On Mar 9, 2004, at 9:21 PM, Josh Green wrote:
Whats the output of "pkg-config --cflags --libs jack" ? Its likely
there
is something wrong with the pkg-config data which is causing the build
to not work right.
ebrahimm% pkg-config --cflags --libs jack
-I/usr/local/include -L/usr/local/lib -ljack -lpthread -ldl -lrt
You're absolutely right. "-ljack" and "-lrt" are still there and there
is no "-framework jack".
Checking the *.pc files gives the following:
ebrahimm% more /usr/local/lib/pkgconfig/fluidsynth.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: FluidSynth
Description: Software SoundFont synth
Version: 1.0.3
Libs: -L${libdir} -lfluidsynth
Cflags: -I${includedir}
ebrahimm% more /usr/local/lib/pkgconfig/jack.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: jack
Description: the Jack Audio Connection Kit: a low latency synchronous
callback-based media server
Version: 0.82.0
Libs: -L${libdir} -ljack -lpthread -ldl -lrt
Cflags: -I${includedir}
I then edited the jack.pc file using pico as follows:
ebrahimm% more /usr/local/lib/pkgconfig/jack.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: jack
Description: the Jack Audio Connection Kit: a low latency synchronous
callback-based media server
Version: 0.82.0
Libs: -L${libdir} -L/usr/local/lib/jack_portaudio.so -framework jack
-lpthread -ldl -lSystem
Cflags: -I${includedir} -I/Library/Frameworks/Jack.framework/Headers
did a "make clean" then "make". This...only returns the same error
message of undefined jack symbols:
(snip)
gcc -Wall -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
-framework MidiShare -o .libs/fluidsynth fluidsynth-fluidsynth.o
-L/usr/local/lib -L/sw/lib -L/usr/lib -L./.libs -lfluidsynth -lm
-lreadline -lncurses -L/usr/local/lib/jack_portaudio.so -ldl -lSystem
-lpthread
ld: warning prebinding disabled because dependent library:
/usr/local/lib/libfluidsynth.1.dylib is not prebound
ld: warning multiple definitions of symbol _BC
/sw/lib/libreadline.dylib(terminal.so) definition of _BC
/sw/lib/libncurses.dylib(lib_termcap.o) definition of _BC
ld: warning multiple definitions of symbol _UP
/sw/lib/libreadline.dylib(terminal.so) definition of _UP
/sw/lib/libncurses.dylib(lib_termcap.o) definition of _UP
ld: warning multiple definitions of symbol _PC
/sw/lib/libreadline.dylib(terminal.so) definition of _PC
/sw/lib/libncurses.dylib(lib_tputs.o) definition of _PC
ld: Undefined symbols:
_jack_activate
_jack_client_close
_jack_client_new
_jack_connect
_jack_get_ports
_jack_get_sample_rate
_jack_on_shutdown
_jack_port_get_buffer
_jack_port_name
_jack_port_register
_jack_set_buffer_size_callback
_jack_set_process_callback
_jack_set_sample_rate_callback
It looks like the problem is rather at "ld: warning prebinding disabled
because dependent library: /usr/local/lib/libfluidsynth.1.dylib is not
prebound"
Could the failure to prebind "libfluidsynth" be due to the following
diagnostic messages from the build file?:
ld: warning -dylib_install_name /usr/local/lib/libfluidsynth.1.dylib
not found in segment address table LD_SEG_ADDR_TABLE
/sw/var/lib/fink/prebound/seg_addr_table
ld: warning -undefined suppress disables -prebind
(snip)
ranlib .libs/libfluidsynth.a
ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_alsa.o)
has no symbols
ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_ladspa.o)
has no symbols
ranlib: file:
.libs/libfluidsynth.a(libfluidsynth_la-fluid_midishare.o) has no
symbols
ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_oss.o) has
no symbols
creating libfluidsynth.la
(cd .libs && rm -f libfluidsynth.la && ln -s ../libfluidsynth.la
libfluidsynth.la)
I checked out the LD_SEG_ADDR_TABLE environment variable:
ebrahimm% more /sw/var/lib/fink/prebound/seg_addr_table
0x20230000 /sw/lib/libapt-inst.1.0.dylib
0x20320000 /sw/lib/libapt-pkg.3.2.dylib
0x20510000 /sw/lib/libbz2.1.dylib
0x20000000 /sw/lib/libcharset.1.dylib
0x20920000 /sw/lib/libdb-3.3.dylib
0x20a40000 /sw/lib/libdb_cxx-3.3.dylib
0x20570000 /sw/lib/libdl.0.dylib
0x20cd0000 /sw/lib/libexpat.0.dylib
0x20720000 /sw/lib/libform.5.dylib
0x20d70000 /sw/lib/libglut.3.dylib
0x20690000 /sw/lib/libgnugetopt.1.dylib
0x20740000 /sw/lib/libhistory.4.dylib
0x20010000 /sw/lib/libiconv.2.dylib
0x20540000 /sw/lib/libintl.1.dylib
0x20780000 /sw/lib/libmenu.5.dylib
0x20790000 /sw/lib/libncurses.5.dylib
0x20580000 /sw/lib/libnetpbm.10.dylib
0x20820000 /sw/lib/libpanel.5.dylib
0x206a0000 /sw/lib/libpbm.9.dylib
0x206d0000 /sw/lib/libpgm.9.dylib
0x205d0000 /sw/lib/libpng.3.dylib
0x20630000 /sw/lib/libpng12.0.dylib
0x206e0000 /sw/lib/libpnm.9.dylib
0x20700000 /sw/lib/libppm.9.dylib
0x20830000 /sw/lib/libreadline.4.dylib
#seg_addr_table: Do not remove the following line, it is used by the
seg_addr_table tool
0x90000000 0xa0000000 <<< Next split address to assign >>>
#seg_addr_table: Do not remove the following line, it is used by the
seg_addr_table tool
0x21090000 <<< Next flat address to assign >>>
I'm looking into how I could insert the -dylib_install_name
"/usr/local/lib/libfluidsynth.1.dylib" into the segment address table
(defined by the environmental variable LD_SEG_ADDR_TABLE) found in
"/sw/var/lib/fink/prebound/seg_addr_table". Firstly,
"/usr/local/lib/libfluidsynth.1.dylib" does not exist yet. It is
presently in the hidden directory "fluidsynth-1.0.3/src/.libs". It is,
in fact, a symbolic link to the Mach-O dynamically linked shared
library "libfluidsynth.1.0.0.dylib" which itself is also in the .libs
directory. So can I just simply "mv
fluidsynth-1.0.3/src/.libs/libfluidsynth.1.dylib
/sw/lib/libfluidsynth.1.dylib" ? Then, run "/sw/bin/seg_addr -update -o
/sw/var/lib/fink/prebound/seg_addr_table" ??? (I don't want to screw
up any OS parameters.) If this is okay, then I could re-make.
In addition, it looks like MidiShare is also not linked properly (see
ranlib command above). This may also lead to problems in building
fluidsynth??
Many thanks.
Ebrahim
- [fluid-dev] Re: fluidsynth and jack on mac, Josh Green, 2004/03/10
- Message not available
- Message not available
- [fluid-dev] Re: fluidsynth and jack on mac, Ebrahim Mayat, 2004/03/10
- [fluid-dev] Re: fluidsynth and jack on mac, Josh Green, 2004/03/10
- [fluid-dev] Re: fluidsynth and jack on mac,
Ebrahim Mayat <=
- [fluid-dev] Re: fluidsynth and jack on mac, Josh Green, 2004/03/11
- [fluid-dev] Re: fluidsynth and jack on mac: The final link?, Ebrahim Mayat, 2004/03/13
- Re: [fluid-dev] Re: fluidsynth and jack on mac: The final link, Ebrahim Mayat, 2004/03/13
- Re: [fluid-dev] Re: fluidsynth and jack on mac: The final link, Josh Green, 2004/03/15