私は実際に大きなプロジェクトに参加しています。コードを理解するための私の第一歩は、main
の機能を検索して、私がアーキテクチャのビジョンを持っていることでした。Cアプリケーションの2つの主な機能
私が発見したのは、複数の主な機能があることです。彼らが異なるフォルダにあるのは事実ですが、私はこのアプリケーションの構築がどのように成功したのか分かりません。私が知っているのは、リンカーが関数main
(エントリーポイント)を期待しているということです。
私は、アプリケーションのビルドプロセスを理解することが難しいと思うので、確かにあなたの中にはこれに遭遇したことがあるので、私は尋ねています。
1 - これを理解するための理論的背景がありますか?もしそうなら、記事、本、あなたが望むものを私に提案してください。
2 - を実行する場合、を複数のアプリケーションで使用する必要がありますか?
2種類のバイナリにコンパイルされているのでしょうか?または、相互に排他的なプリプロセッサをガードすることはできますか?またはコードに精通しているシニアの人に尋ねてください。 –
あなたは_do_ビルドプロセスを理解している必要があります。標準的な方法は、複数の '.c'ファイルが複数の' main'関数(例えば 'foo.c'と' bar.c' - 異なるディレクトリにあるかどうか)を持つことです。 2つの別々のプログラム 'foo'と' bar'を生成します。プログラムの中には、テストプログラムやサイドユーティリティがあります。しかし、CPP /マクロトリッキーを使って、1つの 'main'を別のものに「埋め込む」ことができます。 'bar.c':' #define main bar_main'です。次に、 'foo.c'の' main'は 'bar_main'を呼び出すことができます。それを行うには素晴らしい方法ではありません。 –
は、makefileを長く見て、プロジェクトのドキュメントを読んでください。 単一の実行可能ファイルか複数の実行可能ファイル 最終的な実行可能ファイル – user3629249