ビジュアルスタジオ(私にとっては2015)がヘッダーファイルから.libファイル名を検出する方法を理解できません。
LNK2019の代わりにVisual Studio LNK1104
例Iは、HTTPリクエスト経由で接続するための簡単なプログラムを書くことboost/asio
を使用して1
。ソースファイルには、その上に<boost/asio.hpp>
が含まれています。私はまた、ブーストのフォルダを指すようにC/C++/General/Additional Include Directories
を設定します。その後
は、私は解決策を構築し、エラーが発生します。
Error LNK1104 cannot open file 'libboost_system-vc140-mt-gd-1_61.lib'
しかし、Visual Studioはから名前libboost_system-vc140-mt-gd-1_61.lib
を見つけたところ私は知りません。
- 評価値と継承値の両方のためのLinker/Input/Additional Dependencies/Edit...
で見ると、libboost_system-vc140-mt-gd-1_61.lib
という名前の項目はありません - 私は<boost/asio.hpp>
で何とかによって、それはコンパイラにいくつかの情報を設定することを考えて:あなたはLIBファイルが必要な場合は、libboost_system-探し」 vc140-MT-GD-1_61.lib、それは私の実装である」が、私はブーストフォルダで検索、何のソースファイルが存在しない含まれている "libboost_system-vc140-MT-GD-1_61.lib" を
一般に、ヘッダーファイルで宣言された関数の一部がVisual Studioに実装されていないと、LNK2019: unresolved external symbol ...
がスローされます。
その実装がabcxyz.lib
ファイルの場合、ユーザーはLinker/Input/Additional Dependencies
に行き、abcxyz.lib
、をなしで追加し、Linker/General/Additional Libary Directories
の.libファイルを含むフォルダを指定します。この場合、Error LNK1104 cannot open file 'abcxyz.lib'
がスローされます
なぜ、上記の例でLNK2019エラーの代わりにLNK1104エラーが発生するのですか?
例2
私はOpenCV 2.4.10ライブラリを使用するプロジェクトに取り組んでいます。ディストリビューションでは、彼らは私にソースコード付きのプロジェクトを提供しますが、私にライブラリを添付することはありません。
次に、最新のOpenCV 2.4.13をダウンロードし、追加のインクルードフォルダ、追加のライブラリフォルダ、追加の依存関係(opencv_core2413.lib
)など、プロジェクト用にセットアップしました。
すべてがOKのように見えますが、私はプロジェクトをビルドするとき、それは私にエラーを与える:
Error LNK1104 cannot open file 'opencv_core2410d.lib'
私は評価値(opencv_core2413.libが含まれている)と継承された値の両方にLinker \ Input \ Additional Dependencies
を見ていないが、ないがあります'opencv_core2410d.lib'という名前の項目です。
は、プロジェクトが適用されます別の共有プロパティシートで探してみたがのがここで起こる私は、このエントリを削除したいが、それはそう
ここで見つけることができません「opencv_core2410d.lib」
という名前の入力項目は、ありません?誰も私のために説明することができますか?ありがとう
'libboost_system-vc140-mt-gd-1_61.lib'は' #pragma comment(lib libboost_system-vc140-mt-gd-1_61.lib) 'に由来しています。 http://www.boost.org/doc/libs/1_61_0/boost/config/auto_link.hpp – drescherjm
'opencv_core2410d.lib'は、デバッグビルドに必要なデバッグインポートライブラリです。 – drescherjm
ここでは、#pragma comment(lib libname)の追加使用について詳しく説明します:http://stackoverflow.com/questions/5184889/how-does-the-c-linker-know-which-lib-contains-which-functions – drescherjm