Ergebnis 1 bis 9 von 9

Thema: Visual Studio C++ Express - error LNK2001

  1. #1
    HTML Newbie
    Registriert seit
    18.12.2007
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Visual Studio C++ Express - error LNK2001

    Der Fehler ist im Internet ja bekannt, wie ich bei meiner Suche festgestellt hab, aber ich kapier das einfach nicht wie man diese user32.lib dem Linkervorgang anhängen soll...
    Irgendwo in den Projekt-Eigenschaften, aber wo und was...?

    Vielleicht kann mir das jemand kurz aber verständlich erklären!


    Hab sowohl 8 (2005) als auch 9 (200. Und beidesmal tritt der Fehler auf!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Fortgeschrittene/r
    Registriert seit
    26.09.2005
    Ort
    Nürnberg
    Beiträge
    169
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also ich habe hier zwar nicht die Express (sondern Professional), aber es müsste bei dir genauso gehen:

    Project -> (Projektname) Properties... -> Configuration Properties -> Linker -> Input -> Additinal Dependencies -> [...]

    Dort kannst du weitere statische Libs eintragen. Doch normalerweise sollte die user32.lib immer drin sein.
    Was ist denn das für ein Projekt (Win32 Console Application?). Wenn du ein Empty Project erstellt hast, bekommst du wahrscheinlich noch mehr Probleme. Denn dann ist garnichts eingestellt.

  3. #3
    HTML Newbie
    Themenstarter

    Registriert seit
    18.12.2007
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke für die schnelle Hilfe,

    Da steht nur kernel32.lib (aber ich glaub die hab ich selbst bei meinen versuchen es zum laufen zu bringen eingefügt... und die user32 ist NICHT dabei!!)

    Ja hab ein empty/leeres Projekt erstellt... hmm dann versuch ich das morgen mal ohne leeres Projekt...


    Aber wieso ist das denn auf einmal alles so umständlich, hatte zuvor die Version 6 aber der hat immer einen Fehler gemeldet wenn ich Zählervariablen innerhalb von for-Schleifen deklariert hab...

  4. #4
    Fortgeschrittene/r
    Registriert seit
    26.09.2005
    Ort
    Nürnberg
    Beiträge
    169
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also wenn es um Konsolenprogrammierung geht, nimm das "Win32 Console Application Project" als Startprojekt. Dann sind die nötigen Voreinstellungen schon drin. Dann dürftest du kein Problem mehr haben.

    Und zu deinem Fehler, du meinst wahrscheinlich so was hier:

    Code:
    for&#40;int i=0; i<x; ++i&#41;
    &#123;
       int y = 0;
       // do something
    &#125;
    
    if&#40;i == 10&#41;
    &#123;
       // do something
    &#125;
    Oder? Falls das die Fehlermeldungen verursacht hat -> die Variable i gehört mehr oder weniger zum Scope der for-Schleife, auch wenn diese nur einmal angelegt wird (im Gegensatz zu y). Deswegen kannst du i außerhalb der for-Schleife nicht nutzen.

    So weit ich weiß war das früher (vor dem ISO C++ 99 Standard) möglich.

  5. #5
    HTML Newbie
    Themenstarter

    Registriert seit
    18.12.2007
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ja genau ist nur Win32 Console...


    So hab's nun mit einem NICHT leeren Projekt versucht, nun kommt ein anderer Fehler...

    Code:
    fatal error C1083&#58; Cannot open precompiled header file&#58;
    Und beim Kompilieren kam noch folgende Meldung:
    Code:
    the project is out of date

    Kann ich mir irgendwie nicht so recht erklären, aber ich glaub das ich da irgendwas falsch gemacht hab.

    Ich hab eben ein Win32 Projekt angelegt und dann die *.cpp / *.h Dateien aus dem Projekt entfernt und meine Dateien angehängt. (Sollte man eigentlich *.hpp benutzen?)


    Und das mit der besagten Fehlermeldung im alten VS ist anders gemeint gewesen, dass das Beispiel von dir nicht funktionieren sollte ist mir klar. Aber ich musste komischerweise die Zählervariable z.B. i immer außerhalb der for-Schleife deklarieren - ansonsten kam ein Fehler. Hat mich auch sehr gewundert, aber ich wollte sowieso mal die neuere Version benutzen! Nun hab ich bisher aber mehr Ärger als Nutzen von...

  6. #6
    Fortgeschrittene/r
    Registriert seit
    26.09.2005
    Ort
    Nürnberg
    Beiträge
    169
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Ich muss zugeben das ich mit Visual Studio noch nie Precompiled Header genutzt habe. Aber der Fehler deutet ja darauf hin, dass er die Header nicht finden kann. Eventuell hast du dich nur vertippt. Könnte aber auch sein das die Precompiled Header (welche du in dem Projekt nutzt - kann man auch ausschalten) anders heißen. Aber das weiß ich nicht.

    "The Project is out of date" heißt einfach nur, dass seit dem letzten Compiliervorgang sich die Sourcefiles geändert haben. Einfach nochmal kompilieren und fertig.

    Ach und ob du *.h oder *.hpp benutzt ist eigentlich egal. Mir persönlich gefällt die Endung *.h besser, ist auch fast überall anzutreffen...

  7. #7
    HTML Newbie
    Themenstarter

    Registriert seit
    18.12.2007
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke dir, aber ich hab's noch immer nicht hin bekommen.

    Hier mal die Fehlermeldungen.

    Code:
    ------ Build started&#58; Project&#58; Uebung_3, Configuration&#58; Debug Win32 ------
    Linking...
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; bool __thiscall Container&#58;&#58;remove&#40;void&#41;" &#40;?remove@Container@@QAE_NXZ&#41; referenced in function _main
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; void __thiscall Container&#58;&#58;next&#40;void&#41;" &#40;?next@Container@@QAEXXZ&#41; referenced in function _main
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; class Medium * __thiscall Container&#58;&#58;getitem&#40;void&#41;" &#40;?getitem@Container@@QAEPAVMedium@@XZ&#41; referenced in function _main
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; void __thiscall Container&#58;&#58;begin&#40;void&#41;" &#40;?begin@Container@@QAEXXZ&#41; referenced in function _main
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; bool __thiscall Container&#58;&#58;add&#40;class Medium *&#41;" &#40;?add@Container@@QAE_NPAVMedium@@@Z&#41; referenced in function _main
    main.obj &#58; error LNK2019&#58; unresolved external symbol "public&#58; __thiscall Container&#58;&#58;Container&#40;void&#41;" &#40;??0Container@@QAE@XZ&#41; referenced in function _main
    C&#58;\Dokumente und Einstellungen\BENUTZERNAME\Eigene Dateien\EselHund\OOP\Uebung_3\Debug\Uebung_3.exe &#58; fatal error LNK1120&#58; 6 unresolved externals
    Build log was saved at "file&#58;//c&#58;\Dokumente und Einstellungen\BENUTZERNAME\Eigene Dateien\EselHund\OOP\Uebung_3\Uebung_3\Debug\BuildLog.htm"
    Uebung_3 - 7 error&#40;s&#41;, 0 warning&#40;s&#41;
    ========== Build&#58; 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
    Also ein Vertippen kann ich ausschließen, da ich es nun mehrmals versucht hab...

    (Precompiled header heißt ja nur, dass ich *.cpp und *.h Code in externe Dateien ausgelagert habe, oder?!)



    Ich denke der Fehler liegt irgendwo in der Anlegung des Projektes oder so...

    Ich mache "New Project" dann Halt Name und blabla angeben, "Win32 Console Application"
    Und danach habe ich alle Haken weg gelassen (Habs aber auch mal mit Haken am "Precompiled Header" dran gelassen, was nichts ändert.
    Danach lösche ich alle vorhandenen Dateien im VS raus (nicht im Verzeichnis) und dann füge ich per "Add" --> "Existing Item" meine vorhandenen *.h/*.cpp Dateien ein.

    Ist das so korrekt? (Und sollte ich denn nun den Haken an "Precompiled Header" dran lassen oder nicht, das verwirrt mich noch ein wenig)

  8. #8
    Fortgeschrittene/r
    Registriert seit
    26.09.2005
    Ort
    Nürnberg
    Beiträge
    169
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Also, Precompiled Header heißt nicht das du sie einfach auslagerst, sondern das sie wirklich schon im kompilierten Zustand vorliegen und der Compiler die nicht mehr parsen muss.

    Diese ganzen unresolved external symbols Fehler kommen vom Linker, der aus deinen Objektdateien eine ausführbare Datei macht. So wie es aussieht hast du vergessen die Headerdatei von der "Container" Klasse (oder Struktur) zu includieren.

    Die muss noch per include rein, und dann sollten diese Fehler nicht mehr auftauchen...

  9. #9
    HTML Newbie
    Themenstarter

    Registriert seit
    18.12.2007
    Beiträge
    5
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Danke, danke, danke!

    Ich depp hab's wohl wirklich irgendwie verrafft...


    Und noch nen guten Rutsch

Ähnliche Themen

  1. Parse error: syntax error, unexpected T_INC
    Von cyberkuh im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 05.12.2007, 19:08
  2. Parse error: syntax error, unexpected
    Von wolfw11 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 14
    Letzter Beitrag: 28.03.2007, 21:38
  3. Parse error: syntax error, unexpected '=', expecting ',' or
    Von Dragon23 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 19
    Letzter Beitrag: 25.11.2006, 20:14
  4. Antworten: 2
    Letzter Beitrag: 05.11.2006, 11:55
  5. Visual Studio (Scrip`s//Tutorial`s)
    Von @Storm im Forum Script-Archiv
    Antworten: 2
    Letzter Beitrag: 29.09.2006, 18:08

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •