KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am developing an application that uses the GStreamer library. In order to ease deployment I would like to collect all the GStreamer libraries in a local bundle. For this I wrote a little script that does the following: recursively traverse dependencies (using otool -L ) copy all dependencies to a local directory make all the dependency paths relative to @executable_path (using install_name_tool ) (If you're interested you can have a look at the Ruby script .) However, I'm now seeing runtime errors on the gst_init call: (process:22843): GLib-GObject-CRITICAL **: gtype.c:2458: initialization assertion failed, use g_type_init() prior to this function (process:22843): GLib-CRITICAL **: g_once_init_leave: assertion `initialization_value != 0' failed These errors only occur if I use the localized libraries. Are there certain 'common pitfalls' when it comes to using install_name_tool? Does anyone have an idea what I could be doing wrong? If you need to know certain details then feel free to ask. Update I changed a few things: For the dependent libraries I now only change the dylib paths and not the id (only use install_name_tool -change and not install_name_tool -id ). For the main library I set the id value relative to the executable path ( @executable_name/components/Video.dylib ). These two changes make it work. However it is not yet clear to me why it works. I have some trouble understanding the meaning of the "id" property. It seems to be identifier in the form of a pathname. Why did changing it for the dependent libraries cause runtime errors? I'll try to find answers to those questions with some further expe
Tags (comma-separated)
Save Edits
Cancel