2016-04-06 1 views
0

Ich habe mich stundenlang an die Wand geschlagen. Ich habe mit der pussphinx-Bibliothek von CMUSphinx gespielt, die auf OSX 10.10/XCode 7.2 läuft, und möchte, dass mein .app-Bundle auf Computern außer meinem eigenen läuft. Am wichtigsten sind drei dynamische Bibliotheken, die in das .app-Bundle (libpocketsphinx.3.dylib, libsphinxad.3.dylib und libsphinxbase.3.dylib) eingebettet und dann unter Verwendung von Runpath Search Paths Einstellungen in XCode geladen werden müssen.Suchpfad Pfade können Bibliothek nicht finden, auch nicht mit @ rpath/library.dylib

Ich habe gerade über alles gelesen, was ich finden kann, wie man das zur Arbeit bringt. Ich sollte beachten, dass das .app Bundle kompiliert/läuft wie beabsichtigt auf meinem eigenen Rechner. Ich habe sichergestellt, dass die Bibliotheken in den Ordner /Contents/Frameworks des .app-Bundles kopiert werden. Die Bibliotheken verwenden keine Referenzen, sondern werden in meinen Quellordner kopiert (wie in einem Forum-Beitrag zu genau diesem Thema auf der CMUSphinx-Seite). Ich habe fast jede Kombination der Verwendung von install_name_tool für @rpath/libraryname.dylib, sowie @loader_path und sowohl in der ausführbaren Datei (so ändern es in XCode zu @whatever_path/../ Frameworks), sowie die drei Bibliotheksdateien versucht. Ich habe auch @loader_path/Frameworks pro Post hier versucht, aber kein Glück.

Was seltsam ist der Fehler ich bin immer scheint, wie es libsphinxad.3.dylib wird geladen, sowohl als libsphinxad.3.dylib und libsphinxad.3.dylib verlassen sich auf libsphinxbase.3.dylib, aber ich habe diesen Fehler in der Crash-Bericht:

Dyld Error Message: 
    Library not loaded: /usr/local/lib/libsphinxbase.3.dylib 
    Referenced from: /Volumes/SunGate/VoiceCommander.app/Contents/Frameworks/libsphinxad.3.dylib 
    Reason: image not found 

Hinweis, die /Volumes/SunGate/ ist nur eine Fahrt auf einer anderen Maschine, ich teste das auf.

Ich würde wirklich schätzen Hilfe dabei! Ich werde mein Bestes tun, um weitere Informationen zur Verfügung zu stellen, die zur Lösung dieses Problems beitragen könnten!

Antwort

0

Ich habe diese lib gefunden, indem ich den "find" -Befehl auf meinem System benutzt habe. Nicht überraschend war es hier

sphinxbase/src/libsphinxbase/.libs/libsphinxbase.3.dylib

I verknüpft es nach/usr/local/lib/

ln - s sphinxbase/src/libsphinxbase/.libs/libsphinxbase.3.dylib /usr/local/lib/libsphinxbase.3.dylib

Und alle Set zu gehen!

+0

Können Sie etwas mehr erklären? –

Verwandte Themen