問題タブ [static-libraries]
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.
c - 静的ライブラリで __attribute__((constructor)) が機能しないのはなぜですか?
次の例では、プログラムは次のように出力する必要があります"foo called\n"
。
プログラムが次のようにコンパイルされている場合、動作します。
ただし、foo.c が静的ライブラリにコンパイルされている場合、プログラムは何も出力しません。
なぜこれが起こるのですか?
c - 同じライブラリを静的および動的にリンクする
ライブラリに静的にリンクしているプログラム ( libA.2.0.a
) と、別のライブラリに動的にリンクしているプログラム ( ) がありlibB.so
ます。libB.so
また、古いバージョンの libA ( libA.1.0.so
) に動的にリンクします。
この構成は可能ですか?もしそうなら、システムはlibA.2.0.a
自分のプログラムの for からのシンボルと forlibA.1.0.so
からのシンボルを使用することをどのように知っていlibB.so
ますか?
c++ - C++ スタティック ライブラリは共有ライブラリにリンクできますか?
静的 C++ ライブラリ static.lib があり、shared.lib などの C++ 共有ライブラリからいくつかの関数を呼び出したいとします。出来ますか?
ここで、static.lib にリンクしているが shared.lib にはリンクしていない shared2.lib など、別の共有ライブラリがあるとします。この場合、リンカーは自動的に shared2.lib を shared.lib にリンクしますか?
Microsoft Visual Studio 2003 を使用しています。
static-libraries - Solaris の静的コード?
質問:
- 静的ライブラリがSolaris 10
/usr/lib/*.a
から削除されたのはなぜですか? - 静的にリンクされたオブジェクトを生成する
ことはできませんか?
- 動的にリンクされたコンパイルが唯一のオプションですか?
c++ - Atl71.dll への依存関係は、ATL への静的リンクが選択されていても存在します。
この問題のトラブルシューティングに丸一日費やしましたが、まだ運がありません。私のプロジェクトでは、[一般] プロパティ ページで [ATL の使用] プロパティを [ATL への静的リンク] に設定し、[コード生成] プロパティ ページ (C/C++ フォルダー) で [ランタイム ライブラリ]プロパティを[マルチスレッド (/MT) ] に設定します。ただし、DependencyWalker はまだ Atl71.dll 依存関係を示しています。
私はグーグルでこのページhttp://www.eggheadcafe.com/forumarchives/vcatl/Mar2006/post26077463.aspを見つけ、 atlbase.hの直後にatlwin.hを追加するソリューションを見つけました。このソリューションは、atl71.dll への依存を減らすのに役立ちました。ただし、CreateWindow が正しく機能しないという新しい問題が発生します。
hwnd は NULL です。
したがって、atlwin.h を追加するソリューションは使用できません。以前に同様の静的リンクの問題に遭遇した人がいるのだろうか? それを解決する方法は?
環境: VS 2003 .Net
ありがとう!
c++ - sqlite3をプレーンオブジェクトコードとしてリンクする必要がありますか、それともC ++アプリケーションの静的ライブラリとしてリンクする必要がありますか?
組み込みデータベースとしてsqlite3を使用するC++でアプリケーションを構築しています。sqlite3のソースは、統合されたソースコードファイルsqlite3.c
と2つのヘッダーファイルとして配布されます。
sqlite3コードをプログラムバイナリに直接リンクすることと、sqlite3を静的ライブラリとしてコンパイルしてそのようにリンクすることの相対的な長所または短所は何ですか?
ダイナミックライブラリとしてsqlite3コードにリンクすることはすでに決めています。
c++ - .LIB ファイルと .OBJ ファイルの違いは何ですか? (ビジュアル スタジオ C++)
.OBJ はコンパイルの単位をコンパイルした結果であり、.LIB は複数の .OBJ から作成できる静的ライブラリであることは知っていますが、この違いはコンパイルの単位の数だけのようです。他に違いはありますか?ファイル形式は同じですか、それとも異なりますか?
最終的な実行可能ファイルへのリンク中に、2 つ (またはそれ以上) の .LIB で定義された同じ静的変数がマージされるかどうか疑問に思ったときに、この質問に行き着きました。.OBJ の場合、変数はマージされます。しかし、.LIB でも同じでしょうか?
c++ - Qt Creator で静的ライブラリを使用する
Qt Creator で静的ライブラリを使用する方法を明確に説明しているドキュメントを見つけるのに非常に苦労しています。
Qt Creator を使用してスタティック ライブラリを作成およびコンパイルしました (New=>Projects\C++ Library=>Set type to "Statically Linked Library")。コンパイルして「.aファイル」を吐き出します。
私が遭遇する問題は、ライブラリを使用しようとしたときです。それを使用したい別のプロジェクトがあります (ライブラリ内の #include ファイルなど) が、ライブラリとリンクしたり、ライブラリからファイルを含めたりする適切な方法がわかりません。
iphone-sdk-3.0 - iPhone用にコンパイルする場合、OSは重要ですか?
私はiPhone開発にかなり慣れていないので、現在いくつかの静的ライブラリをプロジェクトに追加しようとしていますが、「シンボルが見つかりません」というエラーが表示されます。
私は問題をグーグルで検索し、運がなくてもさまざまな解決策を試しました。ライブラリは Mac ではなく PC でコンパイルされるため、私の質問は次のとおりです。
Mac でコードをコンパイルする必要がありますか? それらをコンパイルできるようにするには、どのツールが必要ですか?
プロジェクトにヘッダーを含めました。リンクしようとしているコードは c で書かれており、ARM GCC 4.2 用にコンパイルされています。
次のエラーコードが表示されます。
ld 警告: /Users/<>/Playground/Collage/libbaseapi.a では、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/capseng.a では、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/excodecs.a では、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmautorama.a では、ファイルは必要なアーキテクチャではありません ld 警告: で/Users/<>/Playground/Collage/fmclearshot.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmexif.a では、ファイルは必要なアーキテクチャではありません ld 警告: /Users で/<>/Playground/Collage/fmextencoder.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmfacewarp.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/< >/Playground/Collage/fmfxplugin.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmimageenhance.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground /Collage/fmimagefusion.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmjpegsqueeze.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage /fmjpegtools.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmphotoart.a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmredaway .a、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmsemc.a で、ファイルは必要なアーキテクチャではありません ld 警告: /Users/<>/Playground/Collage/fmspeedview.a で、ファイルは必要なアーキテクチャではありません
未定義のシンボル: "_caps_destroyBuffer"、次から参照: -[CollageMainView drawRect:] 内の CollageMainView.old: シンボルが見つかりません collect2: ld は 1 終了ステータスを返しました "_caps_destroyBuffer"、次から参照: -[CollageMainView drawRect:] 内の CollageMainView .o ld: シンボルが見つかりません collect2: ld が 1 つの終了ステータスを返しました ビルドに失敗しました (1 エラー)
BR、アンドレアス
c++ - Initializing qt resources embedded in static library
I have next situation: I need to create widget in standalone static library, which then will be linked with final application (visual c++ 9.0, qt 4.5). This static widget library contains some resources (icons), and consist of a several .cpp files (each contains standalone widget). As far as I know, i must initialize qt resource system, if i use them (resources) in static library, with call to "Q_INIT_RESOURCE( resource_file_name )". I solved this with next code (in every .cpp file in static library):
Instead of my first approach, I have created separate init.cpp file in static library project with initialization code (to avoid including initialization code in every .cpp file), but this didn't work.
Why this didn't work ?
Is this approach with StaticLibInitializer is safe and portable among various compilers and platforms ?