3

IDEとしてDevC++を使用してC++を学び始めました。私が使用しているチュートリアルの1つには、複数のファイルで構成されるプログラムのコンパイルに関するページがあります。この時点では簡単なことです。1つのファイルに関数が含まれており、もう1つのファイルには、関数を呼び出して結果を出力するために必要な他のすべてのコードが含まれています。問題は、チュートリアルがこれらのファイルを結合する方法を教えていないので、プログラムをコンパイルして動作させることができるということです。これを行うには複数の方法があるようで、それらすべてが欲しいのですが、私は主に現在最も単純な方法を探しています。

また、私はこれが初めてなので、説明を簡潔でわかりやすいものにしてください。

4

4 に答える 4

3

.cpp一般に、両方のファイルを同じターゲットの下のプロジェクトに追加します。IDE は自動的に両方のファイルをビルドに追加し、それらをリンクします。


とはいえ、Dev-C++ は非常に古く、メンテナンスされていません。ここ数年更新されていません。別の IDE を使用することを強くお勧めします。wxDev-C ++ と呼ばれる Dev-C++ のフォークを含め、多くの選択肢があり ます。私は実際にはCode::BlocksまたはVisual Studio Expressをお勧めします。どちらもはるかに最新であり、デバッグやその他の多くの機能のサポートが優れています。

于 2011-05-13T19:11:19.387 に答える
3

Dev-C++ についてはよくわかりませんが、概念は同じままです。したがって、両方のファイルを連携させる方法は次のとおりです。

  1. 各 C++ ファイルはコンパイル単位です。つまり、コンパイラは 1 つの .cpp / .cxx ファイルを 1 つの .obj / .o ファイル (Windows および Linux (または任意の Unix) 上) にそれぞれ変換します。
  2. オブジェクトファイルと呼ばれるobjファイルには、その特定のファイルに存在するクラスと関数のマシンコードが含まれています(ここでは内部の詳細をいくつかスキップしています)
  3. 別のコンパイル ユニットに存在する関数にアクセスする場合は、これら 2 つのオブジェクト ファイル をリンクする必要があります。
    • リンクとは、2 つのオブジェクト ファイルをリンクするために使用される用語です。
    • オブジェクトファイルのリンクを行う別のプロセス(コンパイラ以外)があります
  4. したがって、あなたの場合、dev-c++ コンパイラを使用して、個別のオブジェクト ファイルを作成する必要があります。
  5. 次に、リンカーを使用して両方のオブジェクト ファイルをリンクし、最終的な実行可能ファイルを作成します。

参照する .cpp ファイルに存在する関数がある場合は、ヘッダー ファイルを使用します。ヘッダー ファイルには、関数/クラスの宣言が含まれています。.cpp ファイルには実装が含まれます。したがって、.cpp ファイルの 1 つ (たとえば、A.cpp) にヘッダー B.hpp を含め、B.hpp ファイルの関数を使用します。ヘッダーを含めると、関数宣言が別の場所に存在し、リンカーがこれらすべての参照をまとめて最終的な実行可能ファイルを作成することをコンパイラに伝えます。

これがお役に立てば幸いです。それ以外の場合は、使用しているファイルを遠慮なくお知らせください。両方の .cpp ファイルをリンクする方法を提案できます。

于 2011-05-13T19:11:54.510 に答える
1

main()関数があるファイルの先頭にある#include preprocessorディレクティブを使用して、他のファイルを含める必要があります。

例えば:

#include "filename.h"
...
/* rest of code containing main function goes here */
...
于 2011-05-14T00:09:06.500 に答える