問題タブ [install-name-tool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - clang、リンク時に依存する共有ライブラリのインストール名を変更
関連しますが、質問には答えません:
OSX では、パッケージャー マネージャーによって提供される動的ライブラリが非標準ディレクトリにインストールされています。この install_name は単なるファイル名です。例えば:
を使用して libfoo.dylib の install_name を (絶対パス、@RPATH、...) 変更したくありませんinstall_name_tool -id
。
次に、プログラムをライブラリにリンクします。たとえば、次のようになります。
プログラムを実行できません:
なぜなら:
依存ライブラリのパスを変更できます。
それで:
プログラムは次を実行できます。
コマンドに追加できるclangオプションはありますか:
実行する必要を避けるために:
注:変更したくない、DYLD_LIBRARY_PATH
またはそのような他の環境変数。
?
ld - install_name_tool は変更を使用できません
でファイルを再リンクする必要がありますinstall_name_tool
。問題のファイルにより、dylib パスの 1 つを変更できましたが、2 つ目 (7 つのうち) を変更すると、次のエラーが発生します。
グーグルで調べたところ、ファイル内に新しいパスを入れるのに十分なスペースがなく、ld
ツールを使用するか、libtool
これを修正できる可能性があることがわかりました。しかし、私はその方法を理解することができません。このライブラリのソース コードがないため、再コンパイルできません。
このファイルのすべての dylib パスを更新する方法はありますか? どんな助けでも大歓迎です!
私はosx 10.10を使用しています使用しているコマンド:install_name_tool -change old/dylib/path.dylib new/dylib/path.dylib file/to/update
python - Python 用の MySQL パッケージのインポート中にエラーが発生しました
エラーが表示されますが、Python、より具体的にはFlaskでMySQLモジュールをインポートしようとしています。アプリケーションで仮想環境を使用しています。エラーは次のとおりです。
私はそれが言うエラーで見ることができますLibrary not loaded: /Library/Python/2.7/site-packages/_mysql.so
。仮想環境を使用しているため、パスが正しくありません。である必要があります/lib/python2.7/site-packages/_mysql.so
。
これを変更する方法はありますか?ありがとう。
編集:
ライブラリの場所を変更するための端末コマンドが OSX にあることがわかりました。
Enterキーを押すと、次のようになります。
コマンドを間違って入力しているようには見えませんが、何が問題なのですか?
macos - install_name_tool を使用して dylib ファイルのパスを修正します
OS を El Capitan にアップデートした後、C++ プロジェクトをコンパイルしようとしています。ただし、途中でいくつかの障害に直面しました。
問題は、それpathB
が存在しないことです。私が実行するotool -L pathA/libIceUtil.34.dylib
と、私は得る
install_name_tool -change pathB/libIceUtil.34.dylib pathA/libIceUtil.34.dylib pathA/libIceUtil.34.dylib
問題を解決しませんでした。の使用について言及している記事libtool
があります。この問題を解決する方法はありますか?
c++ - ブーストのビルド時に「dll-path」は効果がありません
dll-path
ブーストをコンパイルするときにオプションを提供することで、コンパイルされたブースト ライブラリに完全な実行パスを持たせることを目指しています。
ただし、$(pwd)/build
フォルダー内のライブラリをチェックすると、次のようになります。
つまり、lib 名のフル パスの代わりに、lib 名 (libboost_system.dylib) だけがあります。オプションをどのように使用する必要がありますか、またはこれを達成するための「公式」の方法はありますか (各ライブラリdll-path
で手動で実行するスクリプトを使用する以外に)?install_name_tool
macos - dylib ライブラリ パスを作成し、アプリケーションで使用します
Mac OS X El Capitan (10.11.x) でライブラリを作成し、qt 作成者によって別のアプリケーションで使用したいので、この設定で qt で簡単なライブラリを作成しました。
ご覧のとおり、MyFrm フレームワークに「DynminLinkingLib」ライブラリを作成しました。その後、ライブラリを使用する Qt アプリケーションを作成しました。
Qt でアプリケーションを実行すると、次のエラーが表示されます。
Qt プロジェクトでこのエラーを解決するために、DYLD_LIBRARY_PATH
変数をに設定する/System/Library/Frameworks/MyFrm.framework/dylib
とうまく機能しますが、バンドル アプリケーションを実行すると機能せず、次のエラーが表示されます。
これは、「libDynminLinkingLib.1.dylib」がアプリケーション パスにないためです。
2 つの質問があります。
この問題を解決する方法は知っています
install_name_tool
が、qmake と .pro ファイルでこの問題を解決したいと考えています。では、pro config ファイルでこの問題を解決するにはどうすればよいでしょうか?エルキャピタンでは
DYLD_LIBRARY_PATH
、セキュリティ上の理由からご利用いただけません。それを使用するには、SIP (システム整合性保護) を無効にする必要があります。SIPを非アクティブ化せずにDYLD_LIBRARY_PATHを使用する方法はありますか?