問題タブ [dylib]
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.
xcode - Xcode で動的ライブラリ (dylib) を作成するにはどうすればよいですか?
Xcode でいくつかのコマンドライン ユーティリティを作成しています (プレーン C、Cocoa なし)。私はそれらすべてにカスタマイズしたバージョンの libpng を使用してもらいたいです。また、すべての実行可能ファイル間でライブラリの 1 つのコピーを共有することでスペースを節約したいと考えています (再配布.dylib
してもかまいません)。
libpng エクスポート シンボルを取得するために魔法をかける必要がありますか?
「Link Binary With Libraries」はフェーズリンクを静的に構築しますか?
Apple のドキュメントでは、実行時のライブラリのロードdlopen
について .
私はそれを理解したと思います:
32/64 ビットの実行可能ファイルと 32 ビットのライブラリをビルドしたため、libpng が正しくリンクされませんでした。ライブラリと実行可能ファイルのビルド設定は一致する必要があります。
libpng の config.h には、次のような大量の定義が必要です。
#define FEATURE_XXX_SUPPORTED
"Link Binary With Libraries"ビルド フェーズは動的ライブラリを適切に処理し、アプリケーション バンドルから
DYLD_FALLBACK_LIBRARY_PATH
をロードするには環境変数が必要です。.dylib
macos - LC_LOAD_DYLIB コマンドを Mach-O バイナリに挿入する方法 (OSX)
いくつかのコードで放棄されたソフトウェアにパッチを適用しようとしています。
ソフトウェアはカーボン ベースなので、InputManager は使用できません (少なくとも、使用できるとは思いません)。私のアイデアは、マッチョ ヘッダーに dylib 参照を追加し、初期化ルーチンが呼び出されたときに新しいスレッドを起動することでした。
適切なロード コマンド (LC_LOAD_DYLIB) を追加するために、hexeditor を使用して mach-o ヘッダーをいじりました。
otool は私が期待するものを報告するので、ファイルが正しくフォーマットされていることはかなり確信しています。
ただし、バイナリを起動すると、次のエラーが表示されます
これは、LC_SYMTAB または LC_DYNSYMTAB セクションを変更する必要があることを意味していると推測できます...
誰にもアイデアはありますか?
c++ - Xcode で動的ライブラリをリンクするにはどうすればよいですか?
私は現在 Qt でプログラムを開発しており、ライブラリ libqextserialport.1.dylib を使用しています。
ビルドして x-code で実行すると、次のように表示されます。
ライブラリは /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/ にあります。
実行可能フォルダー /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/ に移動して次のように入力することで、プログラムを実行できます。
install_name_tool -change libqextserialport.1.dylib /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/libqextserialport.1.dylib QtOpenCV
これ以外にもおそらく多くの解決策があることを私は知っています。x-codeから実行するのが最も優れた/最もエレガントな/最も簡単な方法を知っている人はいますか?
macos - dylib で文字セット記号を設定する
古い Powerbook G4 を使用しています。macports (sudo port -d selfupdate) を更新しようとすると、次のエラーが発生します。
dyld: レイジー シンボル バインドに失敗しました: シンボルが見つかりません: _locale_charset 参照元: /usr/bin/rsync 予期される場所: /usr/lib/libiconv.2.dylib
dyld: シンボルが見つかりません: _locale_charset 参照元: /usr/bin/rsync 予期される場所: /usr/lib/libiconv.2.dylib
Symbol _locale_charset を設定するにはどうすればよいですか? 誰もが良い考えを持っていますか?
iphone - iphoneの警告libsqlite3.dylibは必要なアーキテクチャではありませんか?
シミュレーターで正常に動作するように見える iPhone アプリを作成していますが、デバイスで実行しようとすると libsqlite3.dylib が発生します。ファイルは必要なアーキテクチャ エラーではありません。3GS で OS 3.0 を使用しています。これを引き起こしている可能性のあるアイデアはありますか?
ありがとう!
macos - Mac で .dll を作成する: .dylib またはフレームワーク?
顧客の 1 人のためにライブラリの Mac バージョンを作成する必要があります。私は Mac の動的ライブラリにあまり詳しくありませんが、理解したところでは、.dylib またはフレームワークの 2 つのオプションがあります。最良の選択肢は何ですか?なんで?
関連するいくつかの質問:
- 私の理解が正しければ、.dylibは/usr/lib などの標準的な UNIX ディレクトリの 1 つにインストールする必要があります。したがって、.dylib を使用すると、顧客のインストーラーがはるかに複雑になります。おそらく許可を要求する必要があるからです。システムフォルダーに何かを書き込むには?
- フレームワークをプライベートにして、顧客のバンドルに組み込むことはできますか? 他の誰もそれらを見たり使用したりできないのですか?
建設的な批判/コメント/アイデアは大歓迎です。前もって感謝します。
アレックス
c++ - Objective-C アプリケーションでの C++ ライブラリのリンクと使用
フロントエンドにObjective-C、グラフィックス処理とネットワーク通信にC++を使用してグラフィカルアプリケーションを作成しています。C++ コードを含む.dylibまたは.soを Xcode プロジェクトにリンクする方法を探して Apple のサイトを読み回しましたが、何も機能しないようでした。プロジェクトを参照してリンクすることはできましたが、その .dylib から関数を呼び出そうとすると、何をしようとしているのかわからないと言われました。ここで何が起こっているか知っている人はいますか?
Objective-C には、グラフィックスとネットワーキングを行うために必要なすべてのライブラリが含まれていることは知っていますが、このようにやりたいと思っているだけです。私はしばらく C++ をあまり使っていませんでしたが、Objective-C をもっと学びたいと思っています。
ありがとう、ロビー
iphone - iPhoneプロジェクトでdylibの互換性バージョンを指定するにはどうすればよいですか?
最近、静的ライブラリ(mobclix)をiPhoneプロジェクトに追加したため、BaseSDKを3.0に設定する必要がありました。このライブラリは2.2と互換性があると主張されており、これまでのところ、それは本当のように見えます。プロジェクトの展開ターゲットを2.2に設定しました。そこに問題はありません。
現在、この同じプロジェクトでlibxml2も使用しています。どうやら、OS 3.0のlibxml2.2.dylibはOS2.X(それぞれバージョン10と9)よりも新しい。しかし、libxml2を使用する私のコードは、OS2.Xに含まれているlibxml2バージョンとすでに互換性がありました。Base SDKを3.0に設定する必要があったため、「互換性バージョン」/最小バージョン要件/依存関係は自動的に新しいバージョンのlibxml2に設定されます。OS 2でアプリを実行しようとすると、(明らかに)次のランタイムエラーが発生します。
どこかでバージョン要件を上書きすることは可能ですか?またはこの問題を解決するための他のアイデア?
mysql - OS X から MAMP を削除しました。dyld はまだ MAMP ライブラリを使用しています。
Ruby アプリで populator または sphinx を使用しようとすると、dyld エラーが発生し続けます。以前は OS X Leopard で MAMP を使用していましたが、Snow Leopard にアップグレードして以来、スタンドアロンの MySQL (10.5 64 ビット) を使用しています。
戻るだろう
MAMP を削除するために、/Applications/MAMP ディレクトリを削除しました。しかし、それでも dylib に参照があるようです。
私は実行してみました:
再起動しても問題は解決しません。
OS X 10.6.1、MySQL 5.0.85 (x86_64)
iphone - dylib でカテゴリを使用してバイナリのクラスを拡張する
クラス Foobar を持つ objc アプリがあり、起動時にそのアプリにロードされ、いくつかのメソッドでクラス Foobar を拡張する dylib を作成したいと考えています。
残念ながら、ライブラリをビルドできません。次のリンカ エラーが発生します。
その不足しているシンボルを無視するように ld に指示するリンカー フラグはありますか?
どうもありがとう!