私は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. Qtクリエータでライブラリを静的にリンクさせる方法
- 7. 依存静的ライブラリにブーストをリンクする方法
- 8. C++/cmakeで静的ライブラリをリンクする
- 9. Xcodeで静的ライブラリをリンクする
- 10. プロジェクトにSFML静的ライブラリをリンクする
- 11. ライブラリを静的にリンクする
- 12. 静的ライブラリをクラスライブラリプロジェクトにリンクする
- 13. ライブラリを静的に別の静的ライブラリにリンクする方法を教えてください。
- 14. Xcode静的ライブラリGLFW 3.3にリンクする
- 15. LinuxプラットフォームでC++プロジェクトに静的ライブラリとリンクを構築する方法は?
- 16. 他のライブラリを使用する静的Cライブラリをリンクする方法
- 17. MSVCプロジェクトで使用されるMingw静的ライブラリ
- 18. 標準ライブラリで静的にリンクするときの動的プラグインのサポート方法
- 19. golangミスが静的ライブラリをリンクする
- 20. libstdC++を静的にリンクする方法
- 21. Qt:ライブラリの静的リンク
- 22. eclipseでCプロジェクトをC++静的ライブラリ(opencvを使用)にリンクする方法
- 23. golangの.aライブラリをC++プロジェクトから静的にリンクする方法は?
- 24. スタティックにリンクするには静的ライブラリが必要ですか?
- 25. Xcode 7で静的Cライブラリをリンクするには?
- 26. 静的なC++ライブラリをCライブラリにリンクする
- 27. ライブラリを静的にgccにリンクする方法を教えてください。
- 28. Xcode 4でのBoostライブラリの静的リンク
- 29. WindowsでのGTK +ライブラリの静的リンク
- 30. ビルド中に静的ライブラリを共有ライブラリにリンクしますか?
pdcurses.libは実際にはスタンドアロンのスタティックライブラリではなく、DLLのインポートライブラリです。 DLLを必要としないスタンドアロンの静的ライブラリがあることを確認する必要があります。 –