タグ付けされた質問 「static-libraries」

静的ライブラリは、オブジェクトファイルのアーカイブです。リンカ入力として使用され、リンカはリンケージを実行するために必要なオブジェクトファイルを抽出します。


8
ファイルはユニバーサル(3つのスライス)ですが、iOSの静的ライブラリのARMv7-sスライスエラーは含まれていません。バイパスしますか?
Xcodeバージョンをアップグレードし、外部静的ライブラリを使用すると、次のメッセージが表示されます。 ld:ファイルはユニバーサル(3スライス)ですが、a(n)を含まないarmv7sスライス:アーキテクチャarmv7sの/ file / location clang:エラー:リンカーコマンドが終了コード1で失敗しました(-vを使用して呼び出しを確認してください) ライブラリの開発者がライブラリをまだ更新していない場合、これをバイパスしてライブラリにサポートを追加する方法はありますか?

1
.so、.la、および.aライブラリファイルの違いは何ですか?
私は.soファイルが一種の動的ライブラリであることを知っています(多くのスレッドがそのようなライブラリを共有できるため、メモリに複数のコピーを保持する必要はありません)。しかし、違いは何である.aとは.la?これらはすべて静的ライブラリですか? 動的ライブラリに静的ライブラリよりも大きな利点がある場合、なぜ静的ライブラリがまだたくさんあるのですか? また、ライブラリ(両方の種類)をロードするための基本的なメカニズムと、ライブラリのコードがどこかで使用されたときにどのように呼び出されるかについても知りたいです。カーネルのどの部分を調べればよいですか?そして、プロセスがどのように実行されているかを知るために、関連するどのLinuxコマンド/ユーティリティを知っておくべきですか?(私はld今までにコマンドを知っています) いつ、.soまたはにコードをビルドする必要があり.aますか?どちらがいいですか? [mirror@home ins_openvpn]$ ls lib/openvpn/plugins/ -l total 96 -rw-r--r-- 1 mirror mirror 22892 Sep 2 23:25 openvpn-plugin-auth-pam.a -rwxr-xr-x 1 mirror mirror 931 Sep 2 23:25 openvpn-plugin-auth-pam.la -rwxr-xr-x 1 mirror mirror 23621 Sep 2 23:25 openvpn-plugin-auth-pam.so -rw-r--r-- 1 mirror mirror 17228 Sep 2 23:25 openvpn-plugin-down-root.a -rwxr-xr-x 1 mirror …

5
DLLおよびLIBファイル-何を、そしてなぜ?
DLLとLIBについては、プログラムが適切に動作するために必要な重要なコード(ライブラリ)が含まれていること以外は、ほとんど知りません。しかし、なぜコンパイラがそれらを生成するのでしょうか?すべてのコードを単一の実行可能ファイルに含める方が簡単ではないでしょうか?そして、DLLとLIBの違いは何ですか?


6
静的ライブラリのObjective-Cカテゴリ
静的ライブラリをiPhoneプロジェクトに適切にリンクする方法を教えてください。アプリプロジェクトに追加された静的ライブラリプロジェクトを直接依存関係(ターゲット->一般->直接依存関係)として使用し、すべて正常に機能しますが、カテゴリは機能します。静的ライブラリで定義されたカテゴリがアプリで機能していません。 だから私の質問は、いくつかのカテゴリを持つ静的ライブラリを他のプロジェクトに追加する方法ですか? そして一般的に、他のプロジェクトのアプリプロジェクトコードで使用するベストプラクティスは何ですか?

3
図書館?静的?動的?またはフレームワーク?別のプロジェクト内のプロジェクト
既存のiOSアプリがあり、テストを簡単にするために、別のプロジェクトとして開発している大量のコードを追加したいと考えています。新しいチャンクは基本的に画像をさまざまな共有サービスなどに保存することを扱います。その共有コードは多くのテストと将来の更新を必要とするため、既存のアプリにそのコードチャンクを組み込むための最良の方法を考えていました。 それが静的ライブラリ、動的ライブラリ、フレームワークのどれであるかはわかりませんし、正直なところ、違いが何なのか、どうやってそれをXcodeで設定するべきかはよくわかりません。 私が知っているのは、共有コード用に個別のテストおよび更新アプリを保持し、メインアプリでそれを使用する必要がある/欲しいということだけです。

3
Linuxで静的ライブラリをコンパイルする方法は?
質問:Linuxで静的ライブラリをでコンパイルする方法gcc、つまり、ソースコードをout.aという名前のファイルにコンパイルする必要があります。コマンドで単純にコンパイルするだけで十分gcc -o out.a out.cですか?私はに詳しくありgccません。誰かが私に手を貸してくれることを願っています。
138 c  gcc  static-libraries 

2
xcode4のフレームワークと静的ライブラリの違い、およびそれらを呼び出す方法
私はxcodeとObjective-Cにかなり慣れていません。非常に基本的な質問をしたいと思います。 プロジェクト設定で「バイナリをライブラリにリンク」すると、ワークスペースの他のプロジェクトからインポートされたフレームワークとライブラリに違いがあることがわかりました。 最初の質問、なぜフレームワークがあるのですか?そして、なぜ図書館があるのですか?ライブラリをフレームワークにすることはできませんか? 次に、.hファイルから、インポートした静的ライブラリからクラスを呼び出すにはどうすればよいですか? 接頭辞が必要だと思いますが、見つかりませんでした。「ProjName / Myclass.h」も機能していません。 できるだけ具体的にお願いします。 ありがとう

2
ライブラリを静的にリンクするようにgccに直接指示する
静的にリンクするライブラリを指定-Wl,-Bstaticするために使用するのは不思議ですgcc。結局のところgcc、ライブラリ(-Ldir、-llibname)とのリンクに関する他のすべての情報を直接伝えています。 どのライブラリを静的にリンクする必要があるかをgccドライバに直接伝えることは可能ですか? 明確化:特定のライブラリーが静的バージョンにのみ存在する場合、それを使用せずにそれを使用することを知っています-Wl,-Bstaticがgcc、静的ライブラリーを優先することをほのめかしたいと思います。ライブラリファイルを直接指定するとリンクされることも知っていますが、静的ライブラリと動的ライブラリを同じように含めるためのセマンティックを維持することを好みます。

5
iOS静的フレームワークと動的フレームワークの明確化
iOS 8のリリースでは、iOSの動的フレームワークと静的フレームワークについて少し混乱しています。 作成したライブラリを配布する方法を探しています。iOS7以上をサポートする必要があります。(注:これは独自のフレームワークになります。カカオポッドは使用できません。また、ソースを配布することもできません)。これが私がすでに知っていることです: iOS 8はiOS用の「組み込みフレームワーク」を導入しましたが、私が理解しているように、それらはiOS 7では機能せず、iOS 8以降でのみ機能します。 ライブラリを静的ライブラリ(.aファイル)として配布し、ヘッダーも配布するオプションがあります。これが状況に対処する一般的な方法であることはわかっていますが、それよりも簡単なものを見つけたいと思います(可能な場合は、いくつかのリソースをバンドルすることもできます)。 iOS 7は動的リンクをサポートしていないため、動的.frameworkライブラリ(静的のみ)をサポートしていないこともわかりました。しかし、iOS 8は、静的リンクと同様にそうします。 そして、これはこの情報に関する私の質問です: Mach-Oタイプを「静的ライブラリ」に変更することで、.frameworkターゲットを作成し、静的にすることができることがわかりました。問題なくiOS 7をサポートし、ライブラリを.framework bundle?もしそうなら、なぜインターネット上の多くのリソースが示唆しているように、iOS 8の "組み込みフレームワーク"がそれほど大きな問題になっているのですか?何か不足していますか? 私が作成する他のアプリケーションと同じように、.frameworkにコード署名する必要がありますか? .frameworkファイルに他のリソース(コアデータや画像など)を含める必要がある場合はどうなりますか?そのために別の.bundleファイルを作成する必要がありますか?

8
一部のライブラリのみの静的リンク
GCCとリンクするときに、特定のライブラリのみをバイナリに静的にリンクするにはどうすればよいですか? gcc ... -static ...リンクされたすべてのライブラリを静的にリンクしようとしますが、一部の静的バージョン(libX11など)がありません。


3
ソースディレクトリの静的ライブラリにリンクするようにCMakeに指示するにはどうすればよいですか?
主にCMakeの経験を積むために、CMakeに変換しようとしているMakefileを使用した小さなプロジェクトがあります。この例の目的のために、プロジェクトにはソースファイル(C ++、言語は特に関連性があるとは思いませんが)と他の場所からコピーした静的ライブラリファイルが含まれています。議論のために、ライブラリのソースコードが利用できないと仮定します。.aファイルと対応するヘッダーしかありません。 私の手作りのMakefileには、次のビルドルールが含まれています。 main: main.o libbingitup.a g++ -o main main.o libbingitup.a これは正常に動作します。これを再現するようにCMakeに指示するにはどうすればよいですか?もちろん、文字通りこの正確なmakefileではありませんが、同等のリンクコマンドを含むものです。私は明白ですが素朴な方法を試しました add_executable(main main.cpp libbingitup.a) または add_executable(main main.cpp) target_link_libraries(main libbingitup.a) link_directories(.)またはとさまざまなものadd_library(bingitup STATIC IMPORTED)などこれまでのところ何も成功したリンクでの結果という。私は何をすべきですか? バージョンの詳細:Linux上のCMake 2.8.7(Kubuntu 12.04)とGCC 4.6.3

17
Xcode 4は静的ライブラリの依存関係からパブリックヘッダーファイルを見つけることができません
検索に役立つ代替タイトル Xcodeがヘッダーを見つけられない Xcodeに.hがありません Xcode .hファイルが見つかりません 字句またはプリプロセッサの問題ファイルが見つかりません Xcode 3からのiOSアプリケーションプロジェクトに取り組んでいます。Xcode4に移動しました。プロジェクトは多数の静的ライブラリをビルドします。 これらの静的ライブラリはパブリックヘッダーも宣言し、それらのヘッダーはアプリケーションコードで使用されます。Xcode 3.xでは、ヘッダーは(ビルドフェーズとして)にコピーさpublic headers directoryれ、アプリケーションプロジェクトではpublic headers directoryに追加されましたheaders search list。 Xcode 4では、ビルドディレクトリはに移動され~/Library/Developer/Xcode/DerivedData/my-projectます。 問題は、ヘッダーの検索設定でこの新しい場所をどのように参照するかです。のようだ: public headers directory に関連しています DerivedDataディレクトリをいますが、 headers search ディレクトリは他のもの(おそらくプロジェクトの場所)を基準にしています 依存関係としてコンパイルしようとするときに、静的ライブラリを使用するクライアントがヘッダーファイルを利用できるようにするために、Xcode 4でiOS開発用の静的ライブラリターゲットをどのように設定すればよいですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.