Προς το περιεχόμενο

ns 2.29 compilation errors


computeras13

Προτεινόμενες αναρτήσεις

Καλησπέρα σε όλους,

 

αυτόν τον καιρό κάνω την πτυχιακή μου πάνω στην προσομοίωση Wimax δικτύων με την χρήση του ns. Προσπαθώ λοιπόν να περάσω τα διάφορα plugin για να τα δοκιμάσω. Έχω όμως ένα πρόβλημα κατά την διαδικασία εγκατάστασης του ns 2.29.3 allinone (δεν είναι η τελευταία έκδοση αλλά με αυτή δουλεύει το plugin που θέλω να δοκιμάσω).

 

Συγκεκριμένα όταν γίνεται η εγκατάσταση μου εμφανίζεται σφάλμα όταν προσπαθεί να κάνει make το Tclcl1.17.

 

Αρχικά το σφάλμα που μου εμφάνιζε ήταν το ακόλουθο.

 

>Tcl.cc: In member function ‘void Tcl::eval(char*)’:
Tcl.cc:182: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc: In member function ‘int TclObject::traceVar(const char*, TclObject*)’:
Tcl.cc:421: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc: In static member function ‘static int TclClass::create_shadow(void*, Tcl_Interp*, int, const char**)’:
Tcl.cc:509: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc:511: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc: In static member function ‘static int TclClass::dispatch_instvar(void*, Tcl_Interp*, int, const char**)’:
Tcl.cc:566: error: invalid conversion from ‘const char*’ to ‘char*’
Tcl.cc:571: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc: In member function ‘virtual void TclClass::bind()’:
Tcl.cc:603: warning: deprecated conversion from string constant to ‘char*’
Tcl.cc:605: warning: deprecated conversion from string constant to ‘char*’
make: *** [Tcl.o] Error 1
tclcl-1.17 make failed! Exiting ...

 

Βρήκα κάτι που με βοήθησε να μειώσω τα σφάλματα. Πρόσθεσα στο Makefile.in στην γραμμή CCOPT το "-Wno-write-strings". Τα σφάλματα τώρα μειώθηκαν αλλά δεν εξαφανίστηκαν. Έχουν ως εξής.

 

>Tcl.cc: In static member function ‘static int TclClass::dispatch_instvar(void*, Tcl_Interp*, int, const char**)’:
Tcl.cc:566: error: invalid conversion from ‘const char*’ to ‘char*’
make: *** [Tcl.o] Error 1
tclcl-1.17 make failed! Exiting ...

 

Μπορεί κανείς να με βοηθήσει να ξεπεράσω αυτό το πρόβλημα; Έχω φάει κόλλημα και δεν μπορώ να βρω λύση για να το ξεπεράσω.

 

Ευχαριστώ εκ των προτέρων όποιον ασχοληθεί με το πρόβλημά μου.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτά που κατάφερες να εξαλείψεις δέν ήταν σφάλματα αλλά warnings του compiler για τη χρήση διάφορων μεταβλητών στον κώδικα, το error για το οποίο σταμάταγε η διαδικασία είναι το ίδιο και πρίν και μετά το option που προσέθεσες στον g++.

Τέλος πάντων, θα έβαζα στοίχημα οτι χρησιμοποιείς πολύ καινούργιο compiler για την ηλικία του κώδικα που πάς να κάνεις build. Γιά κάνε ένα g++ -v και πές μας τί παίρνεις;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι έχεις δίκιο σε αυτό που λες για τα warnings.

 

Η έκδοση της g++ που έχω είναι η 4.4.4. Είχε πάει και εμένα το μυαλό μου μήπως φταίει η g++ αλλά υπέθεσα πως θα έχει backwords compatibility (μάλλον κάνω λάθος;!).

 

Οπότε η πρόταση είναι να κάνω downgrade στον compiler;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ούτε εγώ ασχολούμαι με c++ γι' αυτό και δεν ξέρω πολλά από τους compiler της. Θα ρίξω μια ματιά σε κανέναν παλαιότερο compiler (αυτόν που προτείνεις αρχικά) και βλέπουμε. Πάντως ένα patch που βρήκα δεν μου έκανε δουλειά (και αυτό σφάλμα έβγαλε xaxa).

 

Αν κάποιος πάντως γνωρίζει κάτι περισσότερο επί του θέματος ας με διαφωτίσει γιατί πραγματικά έχω αρχίσει να μην την παλεύω με το συγκεκριμένο θέμα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Κοίτα, αυτό που πάει να κάνει ο κώδικας έγκειται στον πόσο αυστηρός είναι με την σύνταξη. Σίγουρα παλιότερες εκδόσεις του GNU compiler ήταν πιό χαλαρές, ενδεχομένως να υπάρχει και κάποιο option στον g++ που να το "κλείνει" το strict syntax check αλλά δέν το ξέρω. Βάλε κάποιον εκείνης της εποχής ίσως και λίγο πιό παλιάς. Δοκίμασε δηλαδή 3.4 και 3.3.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε περίπτωση που κανείς αντιμετωπίσει το ίδιο πρόβλημα να πω πως κατάφερα να κάνω compile με την gcc-3.4 και κάνοντας casting στα σημεία που χτίπαγε ο κώδικας με το παραπάνω σφάλμα.

 

Casting θα κάνετε ως εξής

>const_cast<char*>(μεταβλητή)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...