学習の目的で、複数のソース ファイルを含むプロジェクトが必要で、それぞれに独自のmain
機能があります。どうすればこれを達成できますか?私がやろうとしているのは、すべての C ファイルを同じプロジェクトに置き、現在作業中のものを選択的にコンパイルすることです。または、さらに良いことに、ファイルの名前を引数としてプログラムに指定して、プログラムを実行できるようにします。
たとえば、私main.c
がしたいのは(sample*_main
関数が異なるファイルにある場合):
int main(int argc, char ** argv) {
if (argc > 0) {
if (strstr(argv[0], "sample1")) return sample1_main(argc, argv);
else if (strstr(argv[0], "sample2")) return sample2_main(argc, argv);
// etc...
}
printf("Not sure what I should run.\n");
return -1;
}
次に、次のようにプログラムを実行しますmain.exe
。
私が抱えている問題は、いくつかの関数が sample*.c ファイル間で名前を共有している場合に、そのようなタイプのプロジェクトをコンパイルするときに「複数の定義」エラーが発生することです。