ncmpcppのソースコードを見ていて、これを見ました。実装ファイルがないときにヘッダファイルを含める?
#include <mpd/client.h>
このファイルの中には、ncmpcppで使用される関数があります。しかし、それらは単なるヘッダーです。 cppファイルはどこかに存在しなければなりませんか?私は同じディレクトリでそれらを見つけることができませんでした。彼らはどこにいる?
また、含まれているものが<と>で囲まれている場合、どのように見えるかはわかりますか?
ncmpcppのソースコードを見ていて、これを見ました。実装ファイルがないときにヘッダファイルを含める?
#include <mpd/client.h>
このファイルの中には、ncmpcppで使用される関数があります。しかし、それらは単なるヘッダーです。 cppファイルはどこかに存在しなければなりませんか?私は同じディレクトリでそれらを見つけることができませんでした。彼らはどこにいる?
また、含まれているものが<と>で囲まれている場合、どのように見えるかはわかりますか?
サードパーティのライブラリの場合は、ソースコードが含まれていない可能性があります。それは必要でもありません。ヘッダーで宣言されているすべてのシンボル(使用する予定のもの)は、おそらくヘッダーとともに出荷された.lib
ファイルにエクスポートする必要があります。
template
がある場合を除き、インラインである可能性があります。
コードを自分でコンパイルする場合は、cpp
ファイル、またはより一般的には実装ファイルのみが必要です。あなたはそうしない。ヘッダーとバイナリだけを持つモジュールを使用できます。
もちろん、すべてのファイルが一般的に含まれているオープンソースプロジェクトの例がありますが、商用製品の場合、なぜソースコードをリリースするのですか?競合他社をただコピーして新しい名前で再販しているのは何ですか?
あり<>
または""
で区切られたヘッダを探す場所を伝える標準的なルールはませんが、一般的なコンセンサスが<>
が(string
またはiostream
のような)システムヘッダーのために使用されることで、自身のヘッダの""
(myclass.h
)。コンパイラに最初に見える場所を指示するだけです。
これはソースからビルドしたものですが、なぜ実装ファイルが必要でないのですか? –
@javascriptninja: "動的リンク"を参照してください –
モジュールを解体するときに必要でした。これは私が言ったことです。 –