Me and Dan have been pointing you to "-install_name @loader_path". Just do what pd-lib-builder does with shared helper libraries. Unfortunately I don't have time to come up and test a complete solution, but if you don't know how makefiles work already, that might be a good reason to start ;-)

Christof

On 05.01.2021 06:11, Alexandre Torres Porres wrote:
For the record, me and lucas have been trying things in the background but we didn't find a solution.

Em seg., 4 de jan. de 2021 às 22:54, Lucas Cordiviola <lucarda27@hotmail.com> escreveu:

I get an error 

-lc -l:libfluidsynth.2.3.5.dylib -Wl,-R  

ld: library not found for -l:libfluidsynth.2.3.5.dylib

clang: error: linker command failed with exit code 1 (use -v to see invocation)

The.dylib file is in the same dir as the .c file?

can you try:

-l:libfluidsynth.2.3.5.dylib -Wl,-rpath,"./"


export LD_RUN_PATH="." in the makefile?
tried it and it builds, but still get the error
Library not loaded: /usr/local/opt/fluid-synth/lib/libfluidsynth.2.dylib
  Referenced from: /Users/porres/Downloads/fluid~/fluid~.d_fat

hmm, not sure as I'd never done it.


can you try with windows at least?

I have it working:

image1


I tweecked rhe makefile:

~~~~~~~~~

class.sources = fluid~.c

define forWindows

cflags += -I../fs-sources/include
ldlibs += -L../fs-sources/lib


endef

~~~~~~~


"fs-sources" conains the extracted package for win64 from https://github.com/FluidSynth/fluidsynth/releases/tag/v2.1.6


the fluid~ external folder has all these dlls:

fluid~.dll

libgobject-2.0-0.dll
libgthread-2.0-0.dll
libinstpatch-2.dll
libintl-8.dll
libsndfile-1.dll
libfluidsynth-2.dll
libglib-2.0-0.dll


Mensaje telepatico asistido por maquinas.
On 1/4/2021 10:24 PM, Alexandre Torres Porres wrote:


Em seg., 4 de jan. de 2021 às 21:31, Lucas Cordiviola <lucarda27@hotmail.com> escreveu:

Reading here the 3th section:

https://homepages.inf.ed.ac.uk/imurray2/compnotes/library_linking.txt

you can probably also try option:

export LD_RUN_PATH="."

in the makefile?


tried it and it builds, but still get the error

Library not loaded: /usr/local/opt/fluid-synth/lib/libfluidsynth.2.dylib
  Referenced from: /Users/porres/Downloads/fluid~/fluid~.d_fat
 

I think this is necessary for Linux and macOS. On Windows it will auto work if the object and the lib are in the same dir.


can you try with windows at least? 

_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list