Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » Linker Probleme ld bei g++ (mingw)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
02.11.2010, 14:31 Uhr
PaRu



hallo,

ich hab vor ca. 3jahren ein etwas umfangreicheres programm geschrieben. damals hatte ich auf meinem rechner das damals aktuelle mingw installiert. das programm lief prima und das compilieren und linken hat ohne probleme funktioniert.

nun wollte ich an dem programm änderungen vornehmen und habe mir auf empfehlung eines freundes ecplise mit dem aktuellen mingw instaliert. seit dem lässt sich der quellcode nicht mehr kompilieren/linken.

um ihn wieder kompilierfähig zu bekommen, hab ich

Code:
#include <cstdlib>


einfügen müssen, da diese von der funktion atof() benötigt wird. anscheinend ist jetzt alles etwas "strenger" geworden...

auf jedenfall kompiliert der g++ nun wieder den quellcode, aber der linker gibt folgende fehlermeldung:

Code:
g++ -oSOA.exe src\random.o src\parameters_form_file.o src\main.o src\SOA.o
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -luser32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lkernel32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -ladvapi32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lshell32
collect2: ld returned 1 exit status
Build error occurred, build is stopped



ich kann mit der fehlermeldung nix anfangen und muss gestehen, dass ich nicht weiß, wie ich dem problem herr werde, da ich mit der fehlermeldung nichts anfangen kann.
--
Gruß Patrick

Dieser Post wurde am 02.11.2010 um 14:33 Uhr von PaRu editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.11.2010, 17:26 Uhr
Hans
Library Walker
(Operator)


Hi,

also das ist nicht nur eine Fehlermeldung, sondern vier. Und die besagen jeweils, das er (also der Linker) die Dateien nicht findet, die ganz am Ende der Meldung genannt werden.

Zitat:

c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -luser32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lkernel32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -ladvapi32
c:/mingw/bin/../lib/gcc/mingw32/4.5.0/../../../../mingw32/bin/ld.exe: cannot find -lshell32


Die Frage ist jetzt, ob Du irgendwo die Pfade nicht richtig eingestellt hast, oder ob die Dateien an der Stelle wirklich nicht existieren.
Dann schreibst Du, dass Du unter Eclipse arbeitest. Vielleicht ist auch das CDT-Plugin nicht richtig konfiguriert, ohne dem C/C++ Entwicklungen mit Eclipse ja nicht funktionieren. Das kann ich mir allerdings nicht vorstellen, wenn sich ein "Hello World" vollständig übersetzen lässt. (Wissen tu ich es allerdings nicht, weil ich kein Eclipse habe.)

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.11.2010, 17:56 Uhr
PaRu



Hallo Hans,

ich bekomme auch die gleiche fehlermeldung, wenn ich mein altes make-file benutze.

welches ist denn die datei, die ganz am ende der meldung steht? z.B. -luser32 ??? so heißt doch keine datei???
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.11.2010, 18:28 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hast du die winapi für mingw evtl nicht installiert? das sind nämlich alles die winapi libraries.

ansonsten "-l" steht für "library einbinden" und "user32" dann für den namen der library (ohne .a bzw .lib)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.11.2010, 20:29 Uhr
PaRu



so, zu hause funktioniert es.
auf der arbeit, wo ich das programm getestet habe, sind die rechte des nutzer stark eingeschränkt, so dass ich entweder keinen zugriff auf die lib habe oder bei der installertion etwas nicht richtig eingerichtet wurde.

danke für die hilfe....
--
Gruß Patrick
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.11.2010, 21:33 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von PaRu:

welches ist denn die datei, die ganz am ende der meldung steht? z.B. -luser32 ??? so heißt doch keine datei???

"-luser32" vielleicht nicht, aber user32. Das ist 'ne DLL, die sich unter Windows im Pfad C: \winnt\system32 findet. Das gleiche gilt für kernel32, advapi32 und shell32.1


Zitat von PaRu:

so, zu hause funktioniert es.
auf der arbeit, wo ich das programm getestet habe, sind die rechte des nutzer stark eingeschränkt, so dass ich entweder keinen zugriff auf die lib habe oder bei der installertion etwas nicht richtig eingerichtet wurde.

Tja, dann solltest Du vielleicht mal den Admin fragen, was davon eher zutrifft.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 02.11.2010 um 21:34 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: