2 Dateien mit dem selben Dateinamen, welche wird verwendet?
-
Ich habe gerade erst angefangen mit der C++ Programmierung und habe vorher nur Java programmiert und verstehe so einige C++ Eigenheiten nicht, wäre nett wenn mir vielleicht jemand weiterhelfen könnte.
Ich habe folgendes Problem:
Im Ordner /usr/local/include/.. befinden sich haufenweise .h und .cxx Dateien welche ich benötige.
Nun möchte ich eine dieser Dateien modifizieren, was mir jedoch aufgrund fehlender root Rechte nicht möglich ist (außerdem würde ich die Datei gerne im Originalzustand behalten).Ich habe die Datei in meinem source Verzeichnis und auch in der Cmake angegeben. Das System greift jedoch trotzdem immer auf die Datei in /usr/local/include zurück.
Wie kriege ich es hin, dass meine Datei anstatt des Originals verwendet wird?
Vielen Dank schonmal im Voraus.
Hier noch kurz meine System Details:
Ubuntu 8.10
Eclipse CDT
cmake 2.6
-
schau dir die option -I des g++ an. damit kannst du einen ordner angeben, in dem nach header dateien gesucht werden soll. grundsätzlich ist es aber nicht klug, header dateien anderer pakete zu ändern. was genau möchtest du denn ändern?
-
Ui das ging aber schnell.
Ich versuche Bildregistrierungsverfahren vom Insight Toolkit zu modifizieren.
Ich wollte nicht die header Datei sondern die Source Datei verändern, aber ich glaube da fehlt mir noch etwas c++ knowhow.
Wäre auch sehr dankbar für ein gutes c++ Tutorial, habe bisher leider kein vernünftiges gefunden, welches nicht erstmal mit Klassen/Objekten/Schleifen/Bedingungen anfängt, weil das ist mir ja alles bekannt von Java.
Also nochmal zu meinen konkreten Problem:
Ich habe eine Klasse ImageRegistration, welche einige andere Klassen verwendet (es liegen immer .h .txx dieser Dateien vor).
Nun möchte ich eine dieser Klassen modifizieren, dazu habe ich die .h und .txx Datei in mein Source Verzeichnis kopiert und die txx modifiziert.
Aber es werden die Dateien aus dem original Verzeichnis verwendet.
-
du gibst die source datei ja explizit beim compilieren an. nur die header dateien (bzw. alle dateien, die per #include eingebunden werden) werden automatisch gesucht. wenn beide dateien im aktuellen verzeichnis sind, so reicht folgende eingabe aus:
g++ -I. datei.cxx -c
sie erstellt dir dann eine objeckt datei mit namen datei.o.
-
Das Problem ist das ich die Kompilierung komplett cmake und eclipse überlasse, da einem die Kompilierung einem dadurch praktischerweise komplett abgenommen wird und ich wahrscheinlich sonst komplett überfordert wäre.
Aber vielen Dank schonmal für die Hilfe, vielleicht les ich mich erstmal noch ein wenig weiter in c++ ein.
-
Hab jetzt eine Lösung gefunden, wenn man den absoluten Pfad angibt funktioniert es.
Nach dem Tutorial das ich gelesen habe wird bei fehlender Pfadangabe das sourceverzeichnis verwendet, aber naja jetzt weiß ich zumindest das es so funktioniert.
-
Was Du vorhast, klingt nicht nach einer guten Idee. Gibt es denn keine Möglichkeit, die Library zu wrappen und die Änderungen über Deinen Wrapper durchzuführen?