2016-04-05 12 views
0

AKTUALISIERUNG: Ich bin jetzt in der Lage, die CPP-Datei mit make zu kompilieren (ich kann die Kompilierungsausgabe sehen). Die Änderungen scheinen jedoch keine Auswirkungen zu haben. Nachdem ich make ausführen, starte ich den Computer neu, aber immer noch keine Änderungen.Ändern des Inhalts einer CPP-Datei

Wie Sie wahrscheinlich verstehen, habe ich sehr begrenzte Erfahrung mit C++. Ich arbeite gerade an einem Projekt (OpenBTS) und habe einen Fehler in einer der .cpp-Dateien gefunden, nachdem das Projekt erstellt und installiert wurde. Meine Frage ist, wie kann ich den Inhalt (f.eks ändern die Zeichenfolge einer JSON-Datenreferenz) einer .cpp-Datei ändern und es so bauen, dass ich die Änderungen danach sehen kann?

Ich habe versucht, zur Zeit folgendes:

1. 
make 'filename.cpp' 
make: Nothing to be done for 'filename.cpp' 

2. 
make 'filename' 
g++ 'filename.cpp' -o 'filename' 
In file included from 'filename.cpp:29:0: 
'filname.h':26:21: fatal error: Timeval.h: No such file or directory 
#include <Timeval.h> 
compilation terminated. 

3. Run make from root directory: 
Nothing to be done for 'all.' 

4. Run make clean and make from root. This rebuilds the project but the 
changes are still not in effect (I can see that the JSON String is not 
changed at the webserver). 

5. Run ./build.sh script. Still no changes. 

Im Hinblick auf die 2. Verfahren, wie das Projekt wurde erfolgreich aufgebaut und zusammengestellt, wie kommt es, wenn ich versuche, dass mit einer einzigen Datei, der Compiler nicht finden können, die Header-Dateien? Das einzige, was ich geändert habe, war eine Zeichenfolge von "ARFCN" zu "ARFCNtest". Da es etwa 50 Header-Dateien gibt, die voneinander abhängig sind, scheint das Ändern des Includes von <> nach "" und das Kopieren jeder einzelnen Datei in dasselbe Verzeichnis wie eine überflüssige und unnötige Aktion zu sein?

+0

Ich habe keine Erfahrung mit OpenBTS, aber "make clean" gefolgt von "make" sollte es fast sicher tun, aber Wird das geänderte Paket, das Sie gerade erstellt haben, dann _installiert_ (oder anderweitig bereitgestellt)? Hast du den ursprünglichen Prozess und den Relaunch gestoppt? – davmac

+0

Die .cpp-Datei, die ich ändern möchte, sendet JSON-Daten an einen Webserver, so dass ich nur nach "make clean" und "make" versuche, den Computer neu zu starten. Aber ich kann immer noch keine Änderungen in den JSON-Daten sehen, was bedeuten muss, dass die .cpp-Datei nicht kompiliert wurde oder? –

+0

Klingt nicht besonders wahrscheinlich; Normalerweise würden Sie nicht etwas "an Ort und Stelle" erstellen (vielleicht für einige dynamische Sprach-Frameworks, aber nicht generell für C/C++ - Projekte). Ich vermute stark, dass Sie die gebaute Binärdatei vor dem Neustart an die richtige Stelle kopieren müssen. Probieren Sie 'ps-Af' in der Befehlszeile aus, um zu sehen, was gerade läuft, und suchen Sie nach der PID Ihrer Anwendung. Überprüfen Sie dann den'/proc'-Eintrag ('/ proc/xxx/self'), um den Link zur Binärdatei zu finden. – davmac

Antwort

0

Die Änderungen wurden nicht wirksam, da die Kompilierung fehlgeschlagen ist. Sehen Sie sich die Fehlermeldung an, die Sie in der Frage angegeben haben. Repariere das und rebuild.

Übrigens sollte ein Neustart Ihres Computers nicht notwendig sein. Auch die make clean sollte nicht notwendig sein, wenn die Makefile die Abhängigkeiten korrekt ausdrückt. (Es scheint in diesem Fall so zu sein, da es ausprobiert die Quelldatei neu zu kompilieren.)

Verwandte Themen