eigene Header

B

brand

Mitglied
Hallo allezusammen,

is wahrscheinlich ne blöde Frage:

Ich hab in einem Verzeichnis drei Dateien:
haupt.cpp, funk.cpp und funk.h

in der haupt.cpp steht
#include"funk.h"
in der funk.h die Funktionendefs
und in der funk.cpp die Funktion selber.

Ich will haupt.cpp mit "g++ haupt.cpp" übersetzen.
Also ohne das ich noch die funk im Befehlsaufruf angebe.
Wie mach ich das?
Bei der iostream gehts ja auch.

Gruß Michael
 
Entweder du rufst g++ so auf:
Code:
g++ haupt.cpp funk.cpp
oder du tust dir das hier an:
Code:
man make
info make
oder gleich richtig (aber nicht ganz ernst gemeint ;)): autoconf.
 
Aber wie funxt des dann bei der iostream z.B? Da geb ich ja nicht g++ haupt.cpp iostream.h oder so ählich an.
 
iostream ist eine lib.
Wenn du aus funk auch eine lib machst und es vorher als solche kompilierst, dann kannst du später dein Programm dagegen linken ohne die lib selber zu kompilieren.
 
Ich bin nicht ganz sicher, ob ich deine Frage richtig verstehe. Du willst also wissen, woher g++ die Funktionsrümpfe hernimmt, die in <iostream> deklariert wurden? Die holt sich der Linker aus libstdc++.so. In dieser Datei befindet sich der <iostream>-Objektcode. Die Quelltexte von <iostream> werden nicht jedesmal wieder neu übersetzt. Lediglich die Existenz der Klasse wird dem Compiler durch die Headerdatei bekanntgemacht. Der Linker löst dann die externen Referenzen erst auf. Eben aus libstdc++.so.

PS.: Oops, zu spät!
 
Für statische Libraries:
Code:
man ar
Für dynamische Libraries:
Code:
man ld
Beide Kommandos arbeiten mit den .o Dateien, die der Compiler erzeugt hat.
 
Zuletzt bearbeitet:
Hi brand!

Falls du mit englisch keine Probleme hast hilft dir vielleicht das HOWTO des TLDP zu dem Thema Program Library weiter.

Gruss,
Philip
 
Also eigentlich müsste der g++ das können.

g++ -o programm haupt.cpp
 

Ähnliche Themen

Centos und Apache (VirtualHost)

Heimserver Konfiguration für Ubuntu Server?!

Apache /var/www zu /home/ich/www wechseln

Last mit etc/passwd anzeigen lassen

bash: Fehlermeldung und Werte in Array sortieren?

Zurück
Oben