Schwierigkeiten beim compillieren

T

Tom-SN

Grünschnabel
Hallo zusammen,

seid nunmehr fast 2 Tagen versuch ich vergebens ein Script zu kompillieren. ICh bekomme jedoch immer folgende Ausgabe:

Code:
# g++ -O2 main.cc -o newfight
main.cc: In function âint main(int, char**)â:
main.cc:37: warning: deprecated conversion from string constant to âchar*â
main.cc:37: warning: deprecated conversion from string constant to âchar*â
main.cc:37: warning: deprecated conversion from string constant to âchar*â
main.cc:37: warning: deprecated conversion from string constant to âchar*â
/tmp/cc7HBir9.o: In function `global constructors keyed to db':
main.cc:(.text+0xa): undefined reference to `c_db_core::c_db_core()'
main.cc:(.text+0x19): undefined reference to `c_db_core::~c_db_core()'
/tmp/cc7HBir9.o: In function `main':
main.cc:(.text+0x71): undefined reference to `c_db_core::init_by_str(char*, char*, char*, char*)'
main.cc:(.text+0x96): undefined reference to `prepare_combat(s_move_data*, char**)'
main.cc:(.text+0x114): undefined reference to `process_combat(s_move_data*)'
main.cc:(.text+0x125): undefined reference to `finish_combat(s_move_data*, int, char**)'
collect2: ld returned 1 exit status

Ich bin absoluter Noob in Sachen C++ und hoffe, das mir hier jemand weiter helfen kann.

MfG
 
Wenn du den source auch noch posten würdest könnten wir konkrete hinweise liefern, aber so aus dem stehgreif würd ich sgen in Zeile 37 hast du mehrere "â" reingeschrieben und du hast paar header bzw libs nicht eingebunden.
 
Wenn du den source auch noch posten würdest könnten wir konkrete hinweise liefern, aber so aus dem stehgreif würd ich sgen in Zeile 37 hast du mehrere "â" reingeschrieben und du hast paar header bzw libs nicht eingebunden.

Anhang anzeigen stgc-moves-combat.zip

Hier ist der Source mal komplett als Anhang bei. Der sollte eig. fehlerfrei kompiliert werden. Und wenn ich mich recht erinnere gings vor 2Jahren mit dem gleichen Source auch nur mit nen paar Warnings.
 
Du hast da sogar ein makefile drinnen, wieso versuchst du nicht einmal "make" statt deinem manuellen g++ aufruf?

Ich habs zwar nicht ausprobiert, weil ich keinen bock hab mir hier mysql draufzuspielen, aber abgesehen davon, dass die architektur händisch eingestellt wird scheints ganz in ordnung zu sein.

Lösch aus "Makefile" "-march=k8" in der 9. Zeile raus und führ dann "make" aus in dem Verzeichnis.

Kompilier den source aber bitte nicht als root, das macht man nicht.
 
Danke für die Tipps. HAbe es so gemacht wie empfohlen, "-march=k8" aus dem Makefile gelöscht und unter nem Non-Root-User make ausgeführt mit folgendem Ergebnis:
Code:
/opt/stgc/stgc-moves-combat>make
g++ -c -O3 combat_process.cc -o combat_process.o
combat_process.cc: In function âint process_combat(s_move_data*)â:
combat_process.cc:268: error: âtimeâ was not declared in this scope
make: *** [combat_process.o] Error 1
Hat also leider keine Änderung gebracht. Ich hab auch keinen Schimmer wo er diese "â" herholt.
 
Es hat schon was gebracht, nur das hier ist jetzt ein programmierfehler,
Zeile 268 von combat_process.cc ist
Code:
268         srand(time(NULL));
ich bin mir zwar nicht sicher, wie der übliche c++ way ist, da ich hauptsächlich c programmier, aber ich würd einfach in die combat_process.cc ein
Code:
#include <time.h>
reinklatschen, dann sollte er zumindest weiter kompilieren.
 
WoW, Marcellus, hast gerade nen Titel bei mir gewonnen ^^ Helper of the Year :D Es hat gefunzt. Tausend Dank.
 
P.S.: Wenn Du vor dem 'make' den Befehl 'export LC_ALL=C' in der Konsole eingibst, sollten auch diese seltsamen Zeichen verschwinden - wahrscheinlich werden sie dann durch Anfuehrungszeichen ersetzt.
 

Ähnliche Themen

Funktion nicht gefunden

Raspberry Pi custom Kernel

Linker meckert über nicht definierte Funktion

Akonadi startet nicht mehr

Problem beim Kompilieren (Redhat 5)

Zurück
Oben