Create a MacOS X App Bundle Using MacPorts: Difference between revisions

Jump to navigation Jump to search
Line 120: Line 120:
* When Octave is running, clicking on Octave's icon in the dock has no effect. This is because the App bundle runs a shell script which launches Terminal.app which runs Octave. To locate the Octave session, click on the Terminal.app.
* When Octave is running, clicking on Octave's icon in the dock has no effect. This is because the App bundle runs a shell script which launches Terminal.app which runs Octave. To locate the Octave session, click on the Terminal.app.
* Only one instance of the App may be run by clicking on the app.  Multiple instances may be run from the command line.
* Only one instance of the App may be run by clicking on the app.  Multiple instances may be run from the command line.
* In some instances, the Octave binary attempts to load an library whose version number is older than the one it intended to link to (at build time).  This will produce an error like to one below.  The developer utility, [http://macdylibbundler.sourceforge.net/ dylibbundler], is useful in pointing to and/or bundling dynamic libraries in an App bundle.  This utility automates the use of [https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/install_name_tool.1.html {{Codeline|install_name_tool}}].  These errors may linger as the application of this tool requires some experimentation in this case.
* In some instances, the Octave binary attempts to load an library whose version number is older than the one it intended to link to (at build time).  This will produce an error like to one below.
  <nowiki>dyld: Library not loaded: /opt/local/libiconv.2.dylib</nowiki>
  <nowiki>dyld: Library not loaded: /opt/local/libiconv.2.dylib</nowiki>


===Fixing "{{Codeline|dyld: Library not loaded}}" Errors===
===Fixing "{{Codeline|dyld: Library not loaded}}" Errors===
If an error such as the one below is encountered;
If an error such as the one above is encountered, it is likely due to the Bundle looking in the original install path rather than in the App bundle for the library. This can be fixed using the developer utility [https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/install_name_tool.1.html {{Codeline|install_name_tool}}].
<nowiki>dyld: Library not loaded: /opt/local/libiconv.2.dylib</nowiki>
It is likely due to the Bundle looking in the original install path rather than in the App bundle for the library. This can be fixed using the developer utility [https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/install_name_tool.1.html {{Codeline|install_name_tool}}].


To point to the correct location for the library, first determine the library's location in the App bundle. In this instance the library's path is {{Codeline|Octave-3.7.0+.app/Contents/Resources/lib/libiconv.2.dylib}}. Next open a Terminal session, {{Codeline|cd}} to the Resources directory and repair Octave's binary.
To point to the correct location for the library, first determine the library's location in the App bundle. In this instance the library's path is {{Codeline|Octave-3.7.0+.app/Contents/Resources/lib/libiconv.2.dylib}}. Next open a Terminal session, {{Codeline|cd}} to the Resources directory and repair Octave's binary.
364

edits

Navigation menu