/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/helios.pd_darwin:
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
@rpath/libusb-1.0.0.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 902.1.0)
-
Externals in Purr-Data
-
@didipiman And now this:
otool -D /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/helios.pd_darwin
-
/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/helios.pd_darwin:
-
@didipiman How about:
otool -D /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so
-
/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so: is not an object file
-
@didipiman Hm.
Try:
install_name_tool -id /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so
-
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: input file: /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so is not a Mach-O file
-
file /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so
-
/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=6d6066fc49fc9c4a1dd5db75d614ea958f61ae67, stripped
-
@didipiman Oops, try this:
otool -D /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.0.dylib
-
/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.0.dylib:
@rpath/libusb-1.0.0.dylib -
@didipiman I don't really understand Macos' toolset. Give this a try and see if you can instantiate the object afterward:
install_name_tool -id /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.0.dylib /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/pd_helios/libusb-1.0.0.dylib
-
tried instantiating it as [helios], as [pd_helios] to no avail. unless i should try with other paths as the object class...
-
@didipiman For some reason the library isn't finding that libusb-1.0.0.dylib dependency. You'll need to fish around the OSX docs about install_name_tool to figure out how to ensure it's in the correct search path.
-
THANK YOU SO MUCH, @jancsika
will try and report back if i succeed -
@didipiman Sounds good.
One thing you can do is use otool to inspect the paths for a pre-existing external library that has a dependency. Try
fluid~
:- Make sure
fluid~
will instantiate properly on a canvas. - Find the
fluid~
lib in your Purr Data app bundle. Useotool -L
to inspect its dependencies. It should have a dependency on a fluidsynth library which I ship with Purr Data. - Go to the directory in the app bundle where that fluidsynth lib lives.
- Use otool to figure out its install name
Once you get that info, put your libusb dylib library in the exact same directory inside the app bundle as the fluidsynth library. Then use install_name_tool/otool to set the same path relationship helios and libusb binaries that you saw with fluid~ and fluidsynth
I'll try to do the same the next time I get access to a mac machine.
- Make sure
-
@didipiman Note: you can also use the script purr-data/packages/darwin_app/embed_MacOSX_dependencies.sh from the repo as a reference for how this works.. IIRC it only looks for deps that have homebrew path, so I'm not sure that it will properly pick up that libusb dylib. But you can at least have a look at the script to see how it works.
-
thanks. i did that and then i tried something that was in the helios documentation, even though it was supposedly for El Capitan, which is not my OS.
installed homebrew from https://brew.sh/
then on a terminal i ran:brew install libusb
and that was it. pd now loads helios. (hooray).
however, i still get thousands of errors printed on the post window upon startup. my startup preferences are obviously wrong. is there a template for a neatly organised startup preferences file i can check out to make sure mine looks as similar as that? or at least, what’s the general idea? i mean if there is a search path to /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra
do i still need to specify other paths for individual libraries such as:/Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/ggee /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/zexy /Applications/Pd-l2ork.app/Contents/Resources/app.nw/extra/cyclone
and so on?
many many thanks!!!
-
Oh-- remove the "-verbose" flag we used to debug the issue.
Also note-- you're version of helios is probably finding the libusb dylib in the homebrew lib directory. So if you use your same patch on a machine where you didn't install homebrew, helios will no longer work.
Nevertheless-- glad to hear you've got it running!
-
ye, i already removed the "-verbose" flag, but it's still printing a ton of errors including (but not limited to)
pd_helios: can't load library
...confusingly enough