メインプログラム(.cpp)と、メインプログラムで使用されている関数を含むその他のファイル(.cppとそれに対応する.hファイル)があります。私はファイルをコンパイルしてメインコードを実行する方法を知りたいです。複数のソースファイルでプロジェクトをコンパイルするにはどうすればよいですか?
答えて
これはコンパイラによって異なります。
g++ foo.cpp bar.cpp baz.cpp -o foo # compile program
./foo # run program
Basile's right on, you need build machinery。 本当にmake
などを実行し、プロジェクトを再現性のある方法ですばやく再構築できるようにしたいと考えています。また、プロジェクト全体が最新の状態に保たれ、変更されたものに依存するすべてのものが再構築されることを確認する必要があります。 ruakh's answerのように、g++
行のシェルスクリプトを残しておくことはできますが、これは必要以上に再コンパイルされます。 (小規模なプロジェクトでは大したことではありませんが、プロジェクトが自明ではない場合には重要になります)
OMakeのドキュメントをスキップするのに15分しかかかりませんでしたが、非常に有望です。 make
はシステムの標準であり、C++のルールを含む膨大な配列ルールを提供しているので、プロジェクトに新しいMakefile
を書くことはあまり難しくありません。
それはこのようなものを見てみましょう:Cのために、
# the compiler and its flags
CXX = g++
CXXFLAGS = -Wall
PROGRAM = foo
OBJECTS = foo_a.o foo_b.o foo_c.o foo_d.o
.PHONY: all
.DEFAULT: all
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
foo_a.c
という名前の、対応するソースファイルから構築されますfoo_a.o
オブジェクト、foo_a.cc
、foo_a.C
、foo_a.cpp
、foo_a.p
、foo_a.f
、foo_a.F
など、C++、Fortran、Pascal、Lex、Yaccなどがあります。
O'Reilly make
bookはこの時点で残念ながらかなり古いです。 .SUFFIX
の規則はpattern rulesに取って代わられましたが、O'Reillyの本にはパターン規則の適用範囲がありません。それは完全なGNU Make documentationがあなたのために適切でないなら、それはまだ良い出発点です。
私の 'Makefile'に' CXXFLAGS'と 'CXX'を追加しました –
しかし、私はGNU Makeのドキュメントを読みやすくしています。 –
おかげさまでBasile!私は、特定のものを探すためのGNU Makeのドキュメントを気に入っていますが、O'Reillyの本を最初に読んでから、GNUのドキュメンテーションを通して私の道を歩まなかったことを認めなければなりません。 – sarnold
- 1. .NETプロジェクトの.Net Coreプロジェクトからソースファイルを追加するにはどうすればよいですか?
- 2. Free Pascalで複数のソースファイルをコマンドラインで使用するにはどうすればよいですか?
- 3. このプロジェクトをコンパイルするにはどうすればいいですか?
- 4. レーキタスクのソースファイルを見つけるにはどうすればよいですか?
- 5. 複数のAngular 2モジュールをangle-cliでコンパイルするにはどうすればよいですか?
- 6. gccはどのようにしてGDBで複数のソースファイルをコンパイルできますか?
- 7. インポートステートメントは、複数のソースファイルでどのように解決されますか?
- 8. gitでプロジェクトを新しいものに複製/複製するにはどうすればよいですか?
- 9. 複数のソースファイルをコンパイルする
- 10. 複数のプロジェクトを持つVS2008ソリューションでLNK2019を解決するにはどうすればよいですか?
- 11. iOSの単一プロジェクトコピーで複数のプロジェクトを管理するにはどうすればよいですか?
- 12. 複数のプロジェクトで1つのLaravel PHPをインストールするにはどうすればよいですか?
- 13. 複数のpyファイルを1つにコンパイルするにはどうすればよいですか?
- 14. MinGW上でgtkとfile.gladeを使用するプロジェクトをコンパイルするにはどうすればよいですか?
- 15. .Net CoreプロジェクトでTypeScriptのコンパイルを無効にするにはどうすればよいですか?
- 16. 複数のDelphiバージョンのコンパイル済みコードを保持するにはどうすればよいですか?
- 17. Delphiプロジェクトで複数のタイプライブラリを使用するにはどうすればよいですか?
- 18. 複数のプロジェクトでPlay Frameworkを使用するにはどうすればよいですか?
- 19. 複数のAngular 2プロジェクト間でAngular 2コンポーネントを共有するにはどうすればよいですか?
- 20. Pythonで複数のappengineプロジェクトを作成するにはどうすればよいですか?
- 21. アンドロイドスタジオ2.x +で複数のプロジェクトを実行するにはどうすればよいですか?
- 22. 同じプロジェクトで複数のWeb API 2インスタンスを実行するにはどうすればよいですか?
- 23. VSCodeで複数のTypeScriptプロジェクトを視聴するにはどうすればよいですか?
- 24. 複数のファイルのダウンロードをプロジェクトのライフラインに統合するにはどうすればよいですか?
- 25. main()定義を持つ複数の.cppソースファイルを含むフォルダをEclipseプロジェクトにインポートするにはどうすればよいですか?
- 26. 複数の.NETアセンブリをバッチ逆コンパイルするにはどうすればよいですか?
- 27. 1つのMavenプロジェクトに複数のWARファイルをパッケージ化するにはどうすればよいですか?
- 28. 別のソースファイルから変数の値にアクセスするにはどうすればよいですか?
- 29. 複数のプロジェクトに外部log4j.propertiesを使用するにはどうすればよいですか?
- 30. Joomlaプロジェクトで複数の開発者と共同作業するにはどうすればよいですか?
私は-Wall&-gと言いますが、これは非常に便利です。 –
本当にありがとうございました。 – Sohrab
g ++ * .cpp – Sohrab