2011-06-28 8 views
5

jest to program:Visual C++ 2010 - LNK1169 fatal error: jeden lub więcej pomnożyć zdefiniowane symbole znaleźć

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

Na kompilacji (Microsoft Visual C++ 2010 Express na Windows 7), pojawia się błąd, który mówi:

błąd krytyczny LNK1169: jeden lub więcej pomnożyć zdefiniowane symbole znaleźć

+3

Spróbuj usunąć kod, aż błąd zniknie - to da ci wskazówkę. – Beta

+0

Nie widzę błąd przy użyciu Visual Studio C++ 2010 na XP. –

+11

Podoba mi się twoja pierwsza linia tego pytania! W każdym razie kompiluje się dobrze dla mnie używając g ++ na Linuksie. – tjm

Odpowiedz

16

W rzeczywistości nie ma błędu w tym kodzie.

Liczba plików źródłowych może być problemem. Spróbuj kod jako nowy projekt w tym samym kompilator lub spróbuj usunąć pliki z opcją source files w lewym boku tekstem Powierzchnia (czyli gdzie piszesz kod)

Powinno to następnie skompilować.

+0

Dlaczego liczba plików źródłowych byłaby problemem?/GenuinelyCurious – weberc2

+2

kompiluje cały projekt i znajduje wiele głównych metod. – saplingPro

+0

Gotcha. Myślałem, że mówisz, że liczba plików źródłowych może być problemem. Tak jakby istniał limit liczby plików, które można skompilować. Teraz rozumiem. Dzięki. – weberc2

-3

podejrzewam Twój błąd pochodzą z tej linii:

catch(int i) 

Masz już zmienną o takiej nazwie w tym zakresie. Powinieneś także wychwytywać wyjątki, a nie integer.

+0

Próbowałem zastąpić i j, ale nie działa –

+0

Jestem prawie pewien, że jest w innym zakresie. –

2

spróbuj zmienić swój int main() na int submain().

+0

Proszę nie odpowiadać na stare wątki, które przyjęły odpowiedzi podane lata temu. Wykorzystaj swoją energię, aby pomóc w bieżących pytaniach – alestanis

4

Wreszcie myślę, że znalazłem najbardziej prawdopodobne wyjaśnienie problemu, ponieważ wiesz, że zazwyczaj przypisujemy główne jako liczbę całkowitą (int main) w naszym pliku .cpp, a czasami możemy napisać więcej niż jeden plik .cpp w tym samym projekt z tym samym (int main()) .so dla programu, co oznacza, że ​​przypadkowo powtórzyliśmy tę samą funkcję dwa razy w tym samym folderze projektu. Co musimy zrobić, to po prostu napisać jeden plik .cpp z (głównym int) podczas pozostałe pliki .cpp w tym samym projekcie zapisują je (int submain) i sprawdzają, co się dzieje.

Powiązane problemy