3

それは理論的な疑問です。lib.hという2つのファイルだけの小さなライブラリがあるとします。実装コードであるlib.cppからのヘッダー。慣例により、C ++ではlib.hをlib.cppに含めます。つまり、lib.hは「lib.cpp」の存在を「知りません」。したがって、プログラムでライブラリを使用するには、myprogram.cppとmyprogram.hを使用し、「lib.h」だけを含める必要があります。では、プログラムがヘッダーの実装をどのようにロードするのでしょうか。ヘッダーファイルが実装ファイルの存在について「知らない」場合はどうなりますか?

4

2 に答える 2

2

libたとえば、ファイルについてlib.libリンカに伝える必要があります。lib.so

.cppファイルはオブジェクト ファイルにコンパイルされ、次に.libor.soファイルにコンパイルされます。プロジェクトでは、からのファイルmyprogram.cppについてリンカに通知する必要があります。.lib/.solib.cpp

于 2012-06-25T20:31:19.507 に答える
2

通常、実装をライブラリにコンパイルし、プログラムをそのライブラリにリンクします。したがって、実装コードが実際にヘッダーにあるか、ヘッダーに含まれているために配布されているファイルにない限り、「ヘッダーファイルを含むだけで実装コードが存在する」という主張は誤りです。

于 2012-06-25T20:32:24.320 に答える