Linkerfehler bei extern char **environ
-
Morgen :)!
Das Programm, das wir in der FH schreiben müssen, habe ich jetzt fast fertig. Das einzige, was nicht funktioniert ist folgende Zeile:
extern char **environ;
Unser Prof. meinte, wir sollten diese Deklaration verwenden, um die Umgebungsvariablen (Stichwort set) auszugeben, aber irgendwie scheint das mein Compiler nicht zu mögen.
Ich verwende momentan DevCPP und habe es auch schon mit MinGW versucht - bisher leider ohne Erfolg. Jemand eine Ahnung, was ich falsch mache?Dust Signs
-
Dein Code, also die Deklaration muss in eine Header-Datei, und die Definition davon muss in eine Source-Datei. Hast du das schon?
-
Hi!
Es gibt keine Definition dieser Variable. Unser Prof. meinte, es wäre ausreichend, einfach nur
extern char **environ;
zu schreiben um so die Umgebungsvariablen zu erhalten... Oder geht das nur unter Linux?
Dust Signs
-
Ich will meinen dass man die sehr wohl definieren muss, woher soll dein Programm wissen wo es die Umgebungsvariable holen soll? Ohne Definition weiß dein Compiler nur dass es irgendwo eine char ** Variable mit dem Namen environ gibt. Was soll er damit anfangen?
-
Unter Linux kompiliert der GCC das Ganze einwandfrei
.
Dust Signs
-
schenk mir eine glaskugel
-
c.rackwitz schrieb:
schenk mir eine glaskugel
Brauchst du keine. Wenn ich z.B. ein Helloworld-Programm mache, in dem die Deklaration
extern char **environ;
steht und ich es unter Linux per GCC kompiliere funktioniert alles einwandfrei; wenn ich das unter Windows mache kommt ein Linkerfehler. Und das Helloworld-Programm werde ich mir an dieser Stelle hoffentlich sparen können
Dust Signs
-
es gibt cygwin. google.