回答:
main.cppの後に他のすべてのcppファイルをリストします。
すなわち
g++ main.cpp other.cpp etc.cpp
等々。
または、それらをすべて個別にコンパイルすることもできます。次に、生成されたすべての「.o」ファイルをリンクします。
クラスを.hファイルと.cppファイルに分離したので、makefileを使用する必要がありますか、それとも「g ++ main.cpp」コマンドを使用できますか?
一度に複数のファイルをコンパイルすることは、それをMakefileに入れる場合には適切ではありません。
通常、Makefile(GNU / Makeの場合)では、次のように記述すれば十分です。
# "all" is name of the default target, running "make" without params would use it
all: executable1
# for C++, replace CC (c compiler) with CXX (c++ compiler) which is used as default linker
CC=$(CXX)
# tell which files should be used, .cpp -> .o make would do automatically
executable1: file1.o file2.o
そうmake
すれば、再コンパイルが必要なものだけが適切に再コンパイルされます。ヘッダーファイルの依存関係を生成するためにいくつかの調整を追加することもできます。これにより、makeはヘッダーファイルの変更により再構築する必要があるものも適切に再構築します。
必要に応じて、引き続きg ++を直接使用できます。
g++ f1.cpp f2.cpp main.cpp
ここで、f1.cppおよびf2.cppは、関数が含まれているファイルです。makeを使用してビルドを行う方法の詳細については、優れたGNU makeのドキュメントを参照してください。
私はこの質問が何年も前に尋ねられたことを知っていますが、それでも私が通常複数のc ++ファイルをコンパイルする方法を共有したいと思いました。
g++ -c *.cpp -o myprogram
。たとえば、各cppファイル名をEgと入力する代わりに、*を使用するだけです 。"myprogram"
./myprogram
それで全部です!!
私が*を使用している理由は、30個のcppファイルがある場合、それらすべてを入力するとしたらどうでしょうか。または*記号を使用して時間を節約する:)
psこの方法は、makefileを気にしない場合にのみ使用してください。
#include <myheader.hpp>
あなたがあなたのcppファイルの中で使いたいなら、あなたは使うことができます:
g++ *.cpp -I. -o out
以前は、現在のディレクトリにあるすべてのファイルをコンパイルするカスタムMakefileを使用していましたが、必要なときにすべてのディレクトリにコピーする必要がありました。
そこで、私は独自のツールを作成しました- 多くのファイルをコンパイルするときにプロセスをはるかに簡単にするUniversal Compilerです。
〜/ In_ProjectDirectory $ g ++ coordin_main.cpp coordin_func.cpp coordin.h
〜/ In_ProjectDirectory $ ./a.out
...働いた!
Geany IDEでのLinux Mintの使用
各ファイルを同じディレクトリに保存すると、1つのファイルがディレクトリ内に正しく保存されませんでした。coordin.hファイル。そのため、再確認するとcoordin.hとして保存され、-> coordin.h.gchとして誤って保存されていません。ちょっとしたもの。引数!!
g++ *.cpp -o output