私はより大きなプロジェクトを作成しています。クラスが正しく機能するかどうかをテストするために、3つまたは4つのメイン関数のシナリオが必要です。私はこのC++の主な機能のシナリオをあまり作成しない
#define TEST2 //INTERACTIVE OR TEST1 OR TEST2 OR TEST3
#include <iostream>
#ifdef INTERACTIVE
#include "interactive.cpp"
#endif
#ifdef TEST1
#include "test1.cpp"
#endif
#ifdef TEST2
#include "test2.cpp"
#endif
#ifdef TEST3
#include "test3.cpp"
#endif
ようmain.cppにファイルを作成し、このテストファイルのすべての内部でそれが動作するはずです私の意見では、この
#include <iostream>
int main() {
//Code here
return 0;
}
のようなものですが、私はプロジェクトをビルドするとき、私は、リンカを持っていますエラー:
duplicate symbol _main in:
CMakeFiles/Project.dir/main.cpp.o
CMakeFiles/Project.dir/test2.cpp.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [Project] Error 1
make[2]: *** [CMakeFiles/Project.dir/all] Error 2
make[1]: *** [CMakeFiles/Project.dir/rule] Error 2
make: *** [Project] Error 2
何が問題なのですか。
プロジェクトをどのように構築していますか? IDEのセットアップに問題がある可能性があります。それぞれの 'main'は異なる" target "に関連していなければなりませんので、あなたのコードは' main'sの束で構築されません。 –