Visual C++ 2010 - 致命错误LNK1169:找到一个或多个多重定义的符号

Suh*_*pta 5 c++ exception visual-c++ visual-c++-2010-express

这是一个程序:

#include <iostream>
using namespace std;

int main() {
cout << "Enter a number";
int i;
cin >> i;
try {
    if( i == 0 ) throw 0;
    if( i == 2 ) throw "error";
} catch( int i ) {
    cout << "can't divide by 0";
 }
   catch( ... ) {
       cout << "catching other exceptions";
   }
}
Run Code Online (Sandbox Code Playgroud)

在编译时(Windows 7上的Microsoft Visual C++ 2010 Express),我得到的错误是:

致命错误LNK1169:找到一个或多个多重定义的符号

sap*_*Pro 16

实际上这段代码没有错误.

源文件的数量可能是问题.在同一个编译器中尝试将此代码用作新项目,或尝试从source files文本区域左侧的选项中删除文件(即您编写代码的位置)

这应该编译然后.

  • 它编译整个项目并找到多个主要方法. (2认同)

小智 5

最后,我认为我找到了对该问题最合理的解释,因为您知道我们通常在 .cpp 文件中将 main 指定为整数(int main),有时我们可能会在同一项目中使用相同的值编写多个 .cpp 文件(int main () ).so 对于程序来说,这意味着我们不小心在同一个项目文件夹中重复了相同的函数两次。我们要做的就是只用 (int main) 编写一个 .cpp 文件,而另一个 .cpp 文件同一项目中的文件用 (int submain) 编写它们,看看会发生什么。