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

时间:2011-06-28 12:27:50

标签: c++ visual-c++ exception 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";
   }
}

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

  

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

4 个答案:

答案 0 :(得分:16)

实际上此代码中没有错误

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

这应该编译然后。

答案 1 :(得分:4)

最后我认为我找到了最合理的问题解释,因为你知道我们通常在我们的.cpp文件中将main指定为整数(int main),有时我们可能在同一个项目中编写多个.cpp文件与程序相同的(int main())。so意味着我们在同一个项目文件夹中意外地重复了两次相同的函数。我们要做的就是用(int main)写一个.cpp文件

中,同一个项目中的其他.cpp文件用(int submain)编写它们

答案 2 :(得分:2)

尝试将您的int main()更改为int submain()

答案 3 :(得分:-3)

我怀疑你的错误来自这一行:

catch(int i)

你已经有一个在这个范围内命名的变量。此外,您应该捕获异常,而不是整数。