error LNK2001
-
da die Suchfunktion grade nicht funktioniert und ich i9n der FAQ nichts gefunden habe frage ich jetzt hier. Ich bin noch Anfänger.
ich habe einen einfachen code:
#include <iostream.h> istPrimzahl(int kandidat) { bool prim=true; for(int i=2;i<=kandidat-1;i=i+1) { if(kandidat%i == 0) { prim=false; break; } } return prim; }
und es kommen immer die Fehler:
--------------------Konfiguration: lolkjm - Win32 Debug-------------------- Kompilierung läuft... kokok.cpp Linker-Vorgang läuft... LIBCD.lib(crt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main Debug/lolkjm.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe. lolkjm.exe - 2 Fehler, 0 Warnung(en)
wie kann ich das verhindern?
-
Sieht sehr nach Visual-C++ aus.
Da musst Du zuerst ein neues Projekt anlegen für eine "Win32-Konsolenanwendung". Dadrin kannst Du dann eine .cpp-Datei mit Datei->Neu erstellen.
Hier deinen Quellcode rein, dann kompiliert und linkt er auch ohne Fehler.Am bestehenden Projekt kannst Du in den Projekteinstellungen (Projekt->Einstellungen->Linker) in dem Feld Projektoptionen den Wert /subsystem:windows suchen und dort das windows durch console ersetzen.
-
alles so gemacht, dass hab ich so auch schon im I-Net gefunden, aber es funktioniert immer noch nicht.
Beim Bollshed DevC++ kommt dies bei rum:5 D:\Programme\Dev-Cpp\gjuioj.cpp ISO C++ forbids declaration of `istPrimzahl' with no type D:\Programme\Dev-Cpp\Makefile.win [Build Error] [gjuioj.o] Error 1
-
erstens: es heisst "#include <iostream>"; ohne .h.
zweitens: ich glaube eher, der linker sucht verzweifelt nach der main funktion.was auch immer
-
ups, stimmt, das wird es wohl sein.
@Frida:
1. mach besser#include <iostream> using namespace std;
2. definiere istPrimzahl(int kandidat) besser als bool istPrimzahl(int kandidat)
3. schreibe zusätzlich eine Funktionint main() { istPrimzahl(7); ... return 0; }
Dann sollte es funktioneren. Diese main()-Funktion ist bei Konsolen-Programmen in C und C++ zwingend notwendig
-
hmm...also mit dem
#include <iostream> und using namespace std kam der M$ VC++6.0 noch nie klar.und den rest verstehe ich nicht so ganz. Kann mir das jemand nochmal genau erklären.
Bis jetzt hat immer alles funktioniert, doch seit ich einmal MFC ausprobiert habe spinnt der.
Habe das ausm Tutorial, und das bool am Anfang hab ich nur hier vergessen, nicht im code.
-
der msvc kommt sehrwohl mit <iostream> und using namespace std klar. dein compiler beschwert sich nur, weil er keine main-funktion findet. und ein iso-c++-programm benötigt nunmal eine main()-funktion!
also reindamit:
#include <iostream> using namespace std; // deine funktion von oben nur mit bool zu beginn int main () { // ja nicht wie volkard eine zeile rauf :clown: if(istPrimzahl(7)) cout << "Match" << endl; else cout << "Nix Match" << endl; return 0; }
was gibts daran nicht zu verstehen? wenn du den code nicht verstehst würde ich mir schwerstens überlegen bereits mit mfc-applikationen zu beginnen