問題タブ [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.
linux - 非カーネル ヘッダーを含む Linux カーネル (2.6) モジュールをコンパイルします。
非カーネル インクルードによって定義された機能を含む Linux カーネル (2.6) モジュールをコンパイルすることは可能ですか?
例えば:
カーネルモジュール.h
メイクファイル
私が作成してコンパイルしようとしているカーネル モジュールには、いくつかの openssl インクルード ファイルにある機能が含まれています。
上記の標準の makefile では、Linux ヘッダーの外側にインクルードすることはできません。この機能を含めることは可能ですか? もしそうなら、正しい方向に向けてください.
ありがとう、マイク
c++ - ActiveX(Webbrowerがホストする)プロジェクトを静的ライブラリプロジェクトに変換するにはどうすればよいですか?
特定のURLにアクセスするためのコントロール(複合コントロールダイアログペインに埋め込まれたWebブラウザーコントロール)を含むActiveXコンポーネントがあります。URLにアクセスするActiveXコンポーネントは、他のMFCまたはVBプロジェクトで使用できます。使用法は、ActiveXコンポーネントを登録し(zippy32 cmdを使用)、「ActiveXコントロールの挿入」を使用してダイアログウィンドウにコントロールを挿入することです。
今、私はActiveXコンポーネントを同じブラウザウィンドウとWebアクセス機能を備えた静的ライブラリに変換することを計画しています。どうすればいいの?さらに、(静的ライブラリ内の)ブラウザウィンドウを他のMFCプロジェクトで使用する方法。関数呼び出しによるものですか?利用可能なサンプルプロジェクトはありますか?
開発ツールとしてMicrosoft.Net2003を使用しました。
事前にどうもありがとうございました。
macos - OSXで静的リンクする方法
OS Xの静的ライブラリにリンクしようとしています-static
。gccコマンドでフラグを使用しましたが、次のエラーメッセージが表示されます。
マニュアルページを調べたところ、次のようになっています。
このオプションは、すべてのライブラリ(libgcc.aを含む)も-staticでコンパイルされていない限り、MacOSXでは機能しません。libSystem.dylibの静的バージョンもcrt0.oも提供されていないため、このオプションはほとんどの人にとって役に立ちません。
この静的ライブラリにリンクする別の方法はありますか?
c++ - 「エラーLNK2019:未解決の外部シンボル」を解決するにはどうすればよいですか?
私が取り組んでいるこのMFCアプリケーションには、組み込みデータベースが必要です。そこで、私はそのための洗練された高速な「組み込み可能」データベースを探しに行き、SQLiteに出くわしました。
それを使用してDBを作成し、VisualStudio2008を使用して静的ライブラリプロジェクトを作成しました。ライブラリプロジェクトは別のメインプロジェクトで使用されます。
ライブラリプロジェクトではDBClass
、メソッドを使用してクラスを作成しましたAddFeedToDB(CFeed f)
。ライブラリプロジェクトは、.lib
codeproject(cppsqlite3.lib
)のファイルを使用します。
静的ライブラリをコンパイルするとき、エラーは検出されませんが、メインプロジェクトでライブラリプロジェクトファイルを使用しようとすると、次のタイプのエラーが発生します。
私は何が欠けていますか?
c++ - Sunstudio との静的リンク
ライブラリ xxx をライブラリ yyy にリンクしようとしています。xxx を配信するときに xxx と一緒に yyy をパッケージ化する必要がないように、静的にリンクしたいと考えています。サードパーティから提供された yyy の 2 つのバージョンがあります: libyyy.so と libyyyln.a。ここでは、-lyyyln でリンクします。
リンクしてもエラー メッセージは表示されません。「ldd libxxx.so」を実行すると、yyyln への依存関係が表示されません。しかし、「ldd -r libxxx.so」は、yyy からのシンボルが解決されていないことを示しています。「nm libxxx.so」は、yyy からのこれらのシンボルが UNDEF であることを示しています。
私は何が欠けていますか?
Edit1:「-l /fullpath/libyyyln.a」で最終的に動作させることができました
objective-c - 「インスタンスに送信された認識されないセレクター」を解決する方法は?
AppDelegate では、静的ライブラリで定義されたインスタンスを割り当てています。このインスタンスには、「コピー」が設定された NSString プロパティがあります。このインスタンスの文字列プロパティにアクセスすると、「認識されないセレクターがインスタンスに送信されました」というメッセージが表示されてアプリがクラッシュします。Xcode はプロパティのコード ヒントを提供します。これは、呼び出し元のアプリで認識されていることを意味します。特定のクラスは、静的ライブラリ ターゲットにコンパイルされます。私は何が欠けていますか?
いくつかのコードを追加します。
呼び出し元アプリの appDelegate 内。
アプリ内の他のクラスはデリゲートへの参照を取得し、classA.downloadUrl を呼び出します。
c++ - 静的ライブラリへのオブジェクト登録
静的ライブラリの一部として、非常に基本的な「プラグインシステム」を実装しました。各「プラグイン」は、GIF、JPEGなどの特定の画像形式のサポートを実装します。さらに、PluginManager
使用可能なすべてのプラグインのリストを保持するシングルトン(と呼ばれるクラス)があります。
トリッキーな部分は、プロジェクトファイルからソースファイルを追加または削除して、プラグインを無効/有効にしたいということです。これを実現するために、各プラグインは(異なる名前の)グローバル変数を作成し、そのクラスのコンストラクターにプラグインを登録しPluginManager
ます。
JPEG形式の場合はこのようなものです...
ただし、これは理論的には完全に機能しますが、この静的ライブラリを他のコードにリンクして実行可能ファイルをビルドする場合は失敗します。この実行可能ファイルがプラグイングローバル(のようにjpeg_instance
)にアクセスしない限り、リンカーは接続を認識せず(コンストラクターの副作用を完全に無視します)、最終的な実行可能ファイルにコードを含めません。つまり、JPEGプラグインは最終的なアプリでは使用できません。
私は何年にもわたって何度か問題に遭遇し、常にネットで解決策を探しました。毎回、それは既知の問題であり、私はそれと一緒に暮らさなければならないと基本的に言っているページを見つけました。
しかし、おそらくSOの誰かがこれを機能させる方法を知っていますか?
c++ - QtGUIアプリケーションのサイズを小さくする
QtCreatorを使用してアプリを開発する方法を学んでいます。私はWindowsで簡単なアプリを作成しましたが、用途はmingwm10.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dllに依存します。QtQui4.dllのうち、いくつかのウィジェットのみを使用し、残りのすべては必要ありません... QtGui4.dllのサイズを縮小するか、アプリケーションの展開サイズを縮小するために何か他のことを行うことは可能ですか?静的リンクはどうですか?dll全体を埋め込むのでしょうか、それとも使用されるDLLの一部だけを埋め込むのでしょうか。また、Qtを使用して、一部のdllを静的および動的にリンクすることもできますか?
dll - DLLおよびLIBファイル-何と理由?
DLLとLIBについては、プログラムを正しく実行するために必要な重要なコード(ライブラリ)が含まれていることを除けば、ほとんど知りません。しかし、なぜコンパイラーはそれらをまったく生成しないのでしょうか?すべてのコードを単一の実行可能ファイルに含める方が簡単ではないでしょうか。そして、DLLとLIBの違いは何ですか?
gcc - R パッケージのビルド時に静的ライブラリとリンクする方法
R(統計プログラム)で使用されるパッケージを作成しています。私はこのアプリケーションを使用する専門家ではありませんが、次のロジックを使用して非常に単純なパッケージを作成できました。いくつかのクラスがありますC++ の場合、コードは R コンパイラを使用してコンパイルする必要があり、C コードしか許可されないため、C++ メソッドを呼び出すラッパー C コードがあり、後で C コードによって公開されたメソッドを呼び出す R スクリプトがあります。基本的にはR<->C<->C++のような通信です。
このパッケージの作成に使用した完全なチュートリアルはここにあります。参照として追加します。
今私の問題は、既に作成したパッケージにいくつかの機能を追加する必要があることです。私が作成し、regasm ツールを使用して登録された別の製品である COM オブジェクトに遅延バインディングするためのコードを追加する必要があります。
これは、COM オブジェクトに遅延バインドするために使用している C++ コードです。そのために IDispatch を使用しようとしています。
これらの行だけでコンパイラーがすでに問題を引き起こしているため、コード全体を貼り付けませんでした。コンパイルに使用するコマンドは
「Cclass.cc」には c++ メソッドを呼び出す C コードがあり、「C++class.cc」は実際には C++ コードです。
これらのクラスをコンパイルすると、コンパイラは次のように言います
p>必要なすべてのヘッダー ファイルを追加したと確信しています。そのため、静的ライブラリである ole32.lib と oleaut32.lib を含めていないことが問題であると考えています。
したがって、私の質問は、CLSIDFromProgID(...) や QueryInterface(...) などのレイト バインディングのメソッドを使用できるようにするために、このライブラリをどのように含めることができるかということです。また、私の問題がこのライブラリをリンクしているのではなく、他の何かであると誰かが信じている場合は、私の問題がどこにあるのかを教えていただければ幸いです。
また、Rコンパイラで問題なくコンパイルできるように、これらの静的ライブラリとリンクする必要があることも覚えておいてください.Rコンパイラは、私が間違っていなければ単なるCコンパイラです.