問題タブ [import-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.
boost - Boost.Buildが呼び出すg++コマンドラインを確認する方法(1.33.1)
自分のマシンでBoostライブラリをビルドしたときに、インポートライブラリが生成されない理由を理解しようと頭を悩ませています。より具体的には、DLLの構築は正常に機能しますが、以前(つまり、マシンを再インストールする前)にインポートライブラリを正しく生成していました。
いくつかの仕様:
- ブースト1.33.1
- Windows用のg++4.3.3TDM-1リリース
gcc
MSDosコマンドラインプロンプトからのツールセットを使用したビルド- UnxUtils(14-04-03以降)
bjam.exeを呼び出すコマンドラインは次のようになります。
これは以前は素晴らしく機能し、目的のファイルを作成していましboost_thread.lib
たが、現在はそうではありません。私は本当に何が起こっているのかわかりません。リンカがコマンドラインで何を受け取るのか、そしてリンカがそれで何をすべきだと考えているのかを正確に知りたいのです。
ありがとう、
カール
visual-c++ - DLL の存在を確認してから使用する
Visual C++ 2008 Express Edition を使用。.lib
アプリケーションを、ターゲット システムに存在する場合と存在しない場合がある DLLのインポート ライブラリ ( ) にリンクしています。質問する前に: アプリケーションと一緒に DLL を配布できません。
DLL が存在しない場合、DLL から関数を呼び出すとすぐに (ただしすぐには!)、次のようなメッセージが表示されます。
SomeLibrary.dll が見つからなかったため、このアプリケーションを開始できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります。
代わりに、アプリケーションが DLL が存在しないことを検出し、DLL に依存する機能を単に無効にすることを望んでいます。を呼び出してLoadLibrary
、成功したかどうかを確認できましたが、これで十分かどうかはわかりません。たぶん、インポート ライブラリは舞台裏でより多くの作業を行っているのでしょうか?
簡単なLoadLibrary
電話で十分ですか?そうでない場合、他に何をする必要がありますか? これもできますか?
更新: もちろんLoadLibrary
、を使用して、GetProcAddress
使用したい機能ごとに使用できます。しかし、それは面倒です。私はそれを避けて、代わりに提供されたインポート ライブラリを使用することを望んでいました。
visual-c++ - インポート ライブラリの生成を無効にするにはどうすればよいですか?
Visual Studio で COM DLL を作成しています。リンカーは、DLL のインポート ライブラリを生成します。インポート ライブラリは必要ありません。
リンカーにそれを生成しないように指示する方法はありますか?
visual-studio - 一部の dll 静的リンク スタブ ライブラリ (インポート ライブラリ) が非常に大きいのはなぜですか?
pcl (ポイント クラウド ライブラリ) にリンクしているときに、一部の dll スタブ ライブラリが 10 MB を超え、dll 自体がそのサイズの半分未満であることに気付きました (これらはリリース ビルドです!)。dll 情報にアクセスできるように、スタブ ライブラリには最小限の情報のみを含めるべきではありませんか? 彼らが参照するdllファイルよりも大きくなる可能性はありますか?
私にとって関連性があるのは、大きなスタブ ライブラリにリンクすることで、私自身の実行可能ファイルのサイズも大幅に大きくなっているということです。dllを使用して防止したかったこと。
VS に、DLL リンカの動作を変更して、スタブ ライブラリに多かれ少なかれものを入れる設定はありますか?
c++ - インポートライブラリの作成を抑制します-VisualC++リンカー
ソースコード内に(dllexport)ディレクティブがあるIMPLIB
にもかかわらず、リンカーがDLLまたはEXE用に作成するのを防ぐためのおそらく文書化されていない方法はありますか?__declspec
/IMPLIB
結果を指定しない.LIB
と、デフォルトの名前で作成されます。
これは、declspecディレクティブが制御されていないサードパーティのコードから到着する場合に重要です。これは、たとえば、の場合boost::serialization
です。考えられる解決策は、DLLエクスポートを「宣言解除」する方法です。DEFファイルもエクスポートリストに追加することはできますが、削除することはできないため、これを行うことはできません(AFAIK)。
java - Android インポート ライブラリ
私のプロジェクトでは、外部ライブラリを使用する必要があります。そのライブラリは.class
ファイルで構成されています。properties -> Java Build Path -> Libraries -> Add class folderを使用して、このライブラリを含むフォルダーをプロジェクトに追加しました。プロジェクトを問題なくコンパイルできますが、実行すると、failed resolving xy
インポートされたファイルからクラスのインスタンスを作成する行でデバッガーが停止します。
私が使用している外部ライブラリが私の .apk ファイルにリンクされていないと思います。どうすればこれを修正できますか? 「注文とエクスポート」タブでこのライブラリを確認しようとしましたが、アプリケーションでライブラリがエクスポートされると想定しています。しかし、うまくいきませんでした。
このライブラリをプロジェクトの .apk にリンクするにはどうすればよいですか? 最初にこのライブラリをデバイスにインストールする必要がありますか? このライブラリをアプリケーション フォルダにコピーする必要がありますか?
PS: Eclipse Juno、Android SDK ターゲット 10 を使用しています。
ありがとうございました
アップデート
libs
このライブラリをフォルダーにコピーしました。外部ライブラリ パスは次のとおりです。
プロジェクトのライブラリ設定に./libs
フォルダーを追加しました。このライブラリのバージョンはなく、ファイルのみです。.jar
.class
このライブラリのソースコードもありますが、そのクラスをプロジェクトに含めたくありませんでした。独自の依存関係があり、ライブラリのように「リンク」したかっただけです。私が書いていない外部ライブラリです。
更新 2
すべてのソース ファイルをライブラリからプロジェクトの "src/" ディレクトリにコピーしました。ライブラリを Java ビルド パスから削除しました。プロジェクトをコンパイルすることはできますが、実行すると
このエラーをデバッグするにはどうすればよいですか? :(
visual-c++ - 一部の dll のライブラリをインポートするために /INCREMENTAL:NO でリンクするとインポート テーブルが空になる
/INCREMENTAL:NO
ビジュアル c のリリース構成のデフォルトです。
http://ffmpeg.zeranoe.com/builds/FFmpeg git-3efe5e3 32-bit Dev
からダウンロードしました。ファイルが含まれています。を選びました。コンパイル後、ffmpeg dll のインポート テーブルが空になり、プログラムがクラッシュします。を有効にすると、コンパイルして正常に実行されます。.dll.a
.lib
.lib
/INCREMENTAL
test.c
:
_