在我的项目中,我为不同的初学者程序制作了一些文件,以便在 CLion 中开始编码。但是,当我尝试运行我的程序时,出现了“main' 的多重定义”错误。我读到当程序中有多个main'函数定义时会出现这个错误,但我不确定如何解决它。尽管我被告知我应该在我编写的每个程序中编写主要功能。
以下是我要执行的步骤:
代码示例:
// main.cpp
#include <iostream>
using namespace std;
int main() {
cout << "Hello, World!";
return 0;
}
// file2.cpp
#include <iostream>
using namespace std;
int main() {
cout << "This is another file.";
return 0;
}
错误信息:
CMakeFiles/Workspace_Mashup.dir/file2.cpp.obj: In function `main':
file2.cpp:(.text+0x0): multiple definition of `main'
CMakeFiles/Workspace_Mashup.dir/main.cpp.obj:main.cpp:(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
我从 GitHub 下载了 MinGW,并将路径连接到 Clion。 真的很感激帮助
我不确定这到底是怎么回事,但我猜想 Clion 正在编译项目中的每个 .cpp 文件,无论它是否应该如此。这意味着当编译器发现两个
main()
函数时,它不知道该怎么办。您可以为每个文件创建一个项目,或者尝试弄清楚如何让 Clion 只编译特定文件。你可能有很多 main 函数只在不同的项目中。
CLion 不支持多个项目,因为它使用基于脚本的 CMake 系统。
有一些解决方法(请参阅支持多个项目票),但对于初学者我建议避免使用它们并且一次只使用一个项目。
只需将带有 main 的每个 cpp 文件添加到新项目中即可。