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

Eclipse, Build Project


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

Δημοσ.

το προβλημά μου είναι το εξης: έχω ενα object αρχείο(δεν έχω στην δια8εσή μου τον πηγαίο κώδικα) και δεν ξέρω πώς να το συνδέσω με το υπόλοιπο πρόγραμμα(σε γλώσσα C++).Χρησιμοποιώ Eclipse SDK Judo και έχω βάλει το cygwin compiler-linker.

Δημοσ.

Δεν γνωρίζω την ακριβή διαδικασία μέσα από το Eclipse, αλλά σε γραμμή εντολών προσθέτεις το object αρχείο σου όταν καλείς τον g++ driver...


g++ mysrc1.c mysrc2.c xyz.o -o myprog
Με την προϋπόθεση πως το object αρχείο σου έχει παραχθεί με τον g++ (ίσως χρειαστεί να χρησιμοποιήσεις και την ίδια έκδοση του g++ με την οποία παράχθηκε το object αρχείο).
Δημοσ.

Προέκυψε ένα νέο πρόβλημα:

ο linker μου βγάζει το εξής error:

undefined reference to constructor(πριν συνδέσω το object file δεν υπήρχε αυτό το πρόβλημα)

Δημοσ.

Μάλλον το object αρχείο σου συνοδεύεται κι από ένα .h αρχείο (μέσα στο οποίο ορίζεται η κλάση από την οποία προσπαθεί να δημιουργήσει instances αντικειμένων).
 
Οπότε πρέπει είτε να βάλεις αυτό το .h αρχείο στον ίδιο φάκελο που έχεις τον υπόλοιπο πηγαίο κώδικα, είτε να πεις του g++ που να το βρει (με το command line flag -I ... κεφαλαίο Άι είναι αυτό).
 
Ένα άλλο ενδεχόμενο είναι το object αρχείο σου να είναι μέρος μιας βιβλιοθήκης (αν είναι static θα έχει κατάληξη .a), οπότε σε αυτή την περίπτωση θα πρέπει να την συμπεριλάβεις τον φάκελό της στο command-line με το flag -L και να πεις του linker να την χρησιμοποιήσει με το command-line flag -l (πεζό L είναι αυτό). Αν είναι dynamic (shared), θα έχει κατάληξη .so και θα πρέπει να υπάρχει σε κάποιον από τους φακέλους που περιέχει η μεταβλητή περιβάλλοντος PATH.
 
Ένα άλλο ενδεχόμενο είναι το object αρχείο σου να έχει παραχθεί με ασύμβατη έκδοση του g++.
 
ΥΓ1. Οι παραπάνω καταλήξεις βιβλιοθηκών αφορούν τον g++ (είτε σε native Unix/Unix-like περιβάλλον, είτε σε cygwin, είτε σε mingw). Σε compilers για Windows περιβάλλον οι αντίστοιχες καταλήξεις είναι .obj (για static) και .dll (για dynamic).
 
ΥΓ2. Κοίτα και στο google.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...