Visual C ++ 2010 - фатальная ошибка LNK1169: найден один или несколько кратно определенных символов - PullRequest
5 голосов
/ 28 июня 2011

это программа:

#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";
   }
}

При компиляции (Microsoft Visual C ++ 2010 Express для Windows 7) я получаю сообщение об ошибке:

фатальная ошибка LNK1169: один или несколько найдено несколько символов

Ответы [ 4 ]

16 голосов
/ 28 июня 2011

На самом деле в этом коде нет ошибок .

Количество исходных файлов может быть проблемой. Попробуйте этот код как новый проект в том же компиляторе или попробуйте удалить файлы из опции source files в левой части области текста (т. Е. Где вы пишете свой код)

Это должно скомпилироваться тогда.

4 голосов
/ 21 ноября 2012

Наконец, я думаю, что нашел наиболее правдоподобное объяснение проблемы, поскольку вы знаете, что мы обычно назначаем main как целое число (int main) в нашем файле .cpp, и иногда мы можем записать более одного файла .cpp в одном проектес той же (int main ()) .so для программы, это означает, что мы случайно повторили одну и ту же функцию дважды в одной и той же папке проекта. Что нам нужно сделать, это просто написать один файл .cpp с (int main), в то время какдругие файлы .cpp в том же проекте запишите их с помощью (int submain) и посмотрите, что произойдет.

2 голосов
/ 25 февраля 2012

попробуйте изменить int main() на int submain().

0 голосов
/ 28 июня 2011

Я подозреваю, что ваша ошибка произошла из этой строки:

catch(int i)

У вас уже есть переменная с таким именем в этом диапазоне.Кроме того, вы должны ловить исключения, а не целое число.

...