私はMicrosoft Visual C++ 10でプログラムをコンパイルしており、PDCursesライブラリを使用しています。私はそれをpdcurses.libとリンクするように設定しましたが、アプリケーションを実行しようとすると、システムは "pdcurses.dll"を見つけることができないと文句を言います。それについてそれに不平を言うべきではありません。私はMinGW(GCC)でプログラムをコンパイルしていましたが、アプリケーションを実行しようとするとDLLについて私に尋ねません。 MSVCがPDCursesを静的にリンクするように私は何をすることができますか?MSVCでライブラリを静的にリンクする方法は?
答えて
MSVCで.lib
ファイルには2つの形式をとることができます。
- 静的ライブラリ
- 前者はからエクスポートされたエントリポイントのアプリケーションに認識させるために使用することができます
インポートライブラリDLLは、PEファイルのインポートディレクトリ(または遅延ロードされたインポートのための別の同様の場所)に書き込まれます。
ただし、実際には、参照される関数ごとに含まれるコードを最終的なバイナリにリンクします。これは必要なものですが、リンクしたいライブラリのリリースで提供されていない場合は、ソースコードから静的ライブラリを構築する必要があります。
しかし、別の可能性があります:単に.lib
ファイルを見つけるためにリンカーの間違ったディレクトリを渡すことができます。この場合、静的ライブラリの代わりにインポートライブラリをリンクします。ビルドログで使用するパスを確認してください。ただし、これは、ライブラリの配布に両方のタイプのライブラリが含まれている場合にのみ適用されます。
私は同じディレクトリにpdcurses.libとpdcurses.dllの両方を持っています。私は、そのディレクトリに "追加のライブラリ"パスを設定しているので、.libを見つけるはずです。そして "input"フィールドにはpdcurses.libが追加されています。私は静的にGCCを使って他のアプリケーションにpdcursesをリンクさせていました。問題はいくつかのMSVC設定にありますが、正確には何かを知ることはできません。 –
あなたが 'lib.'を持っているからといって、' .lib'のタイプについて何も言わないだけです。見つけやすい簡単な経験的な方法は、DLLが '.lib 'よりも小さいか大きいかです。もしそれが大きければ、 '.lib 'は単なるインポートライブラリである可能性があります。もしそれが小さければ、 '.lib'はあなたが探している静的ライブラリでしょう。あなたのビルドログからの詳細をあなたの質問に含めると、私たちはさらに助けることができます。これはアーカイブ( '.a')または' .so'を直接使用するため、GCCは比較としては意味がありません。 MSVCでは、ダイナミックリンクにインポートライブラリ( '.lib')が必要です。 – 0xC0000022L
dllはパス内にある必要があります。
これは静的リンクとはまったく関係ありません。 –
PDCursesを使用する場合は、パスにdllを入れる必要があります。その後、あなたはインターフェイスライブラリにリンクすることができます。 – EvilTeach
- 1. 他の静的ライブラリにリンクする静的ライブラリに動的ライブラリをリンクする
- 2. Cで静的ライブラリにリンクする方法は?
- 3. Visual C++ 2008で静的ライブラリをリンクする方法は?
- 4. C#ClassLibraryのライブラリを静的にリンクする方法は?
- 5. OSXのgfortranライブラリで静的にリンクする正しい方法
- 6. 依存静的ライブラリにブーストをリンクする方法
- 7. C++/cmakeで静的ライブラリをリンクする
- 8. Xcodeで静的ライブラリをリンクする
- 9. ライブラリを静的に別の静的ライブラリにリンクする方法を教えてください。
- 10. libstdC++を静的にリンクする方法
- 11. MSVCプロジェクトで使用されるMingw静的ライブラリ
- 12. Qt:ライブラリの静的リンク
- 13. スタティックにリンクするには静的ライブラリが必要ですか?
- 14. ライブラリを静的にgccにリンクする方法を教えてください。
- 15. 静的なC++ライブラリをCライブラリにリンクする
- 16. Xcode 4でのBoostライブラリの静的リンク
- 17. WindowsでのGTK +ライブラリの静的リンク
- 18. ビルド中に静的ライブラリを共有ライブラリにリンクしますか?
- 19. 同じライブラリを静的および動的にリンクする
- 20. Android NDKライブラリを静的なiOSライブラリにコンパイルする方法
- 21. Android:自分の静的ライブラリを正しくリンクするには?
- 22. Visual Studio 2010で静的ライブラリをプロジェクトにリンクする
- 23. Linux上でライブラリを静的にリンクする
- 24. 静的ライブラリのstd :: coutとMSVC 2010リンカーエラー2005
- 25. GCCを使用して静的ライブラリをリンクする適切な方法
- 26. 静的ライブラリにバージョン番号を格納する方法は?
- 27. Objective-C静的ライブラリをXamarin.iOSにバインドする方法は?
- 28. 外部変数が静的ライブラリ内でリンクに失敗する
- 29. xcodeで静的ライブラリにコードを変換する方法4x
- 30. XCodeで静的ライブラリの静的ライブラリを作成する
pdcurses.libは実際にはスタンドアロンのスタティックライブラリではなく、DLLのインポートライブラリです。 DLLを必要としないスタンドアロンの静的ライブラリがあることを確認する必要があります。 –