gcc prob

Giorgos Keramidas keramida at hades.hell.gr
Thu Sep 2 09:50:42 EEST 1999


On Thu, Sep 02, 1999 at 12:44:19AM +0300, Count Zero wrote:
| ksafnika kai xoris kanenan profanh logo den boro na kano compile kanena
| programma me kamia kyvernhsh. afta einai ta error msgs pou pairno an
| dokimaso na kano compile to int main(){}

Οκ, σειρά μου να ρωτήσω κάποια πραγματάκια γιατί αλλιώς δε μπορώ να ξέρω,
εκτός από το ότι κάτι πάει στραβά με την εγκατάσταση του gcc σου, τίποτα
περισσότερο:

* Ποια έκδοση του gcc έχεις;
  [κάνε gcc -v και στείλε μας το output]
* Πως την εγκατέστησες (με rpm, με tgz όπως του slackware, με compile);
  [για θυμίσου, για θυμίσου]

| /usr/lib/crti.o: In function `_init':
| /usr/lib/crti.o(.init+0x0): multiple definition of `_init'
| crt1.o(.init+0x0): first defined here

Από εδώ βλέπω πως το /usr/lib/crt1.o σου κάτι δεν έχει καλά, γιατί εμένα το
/usr/lib/ctri.o έχει το _init και το _fini σαν σύμβολα, ενώ αντίθετα το
/usr/lib/ctr1.o έχει μόνο undefined references σε αυτά τα δύο:

    hades # nm /usr/lib/ctri.o | egrep -e '(_init|_fini)'
    00000000 ? _fini
    00000000 ? _init
    hades # nm /usr/lib/ctr1.o | egrep -e '(_init|_fini)'
             U _fini
             U _init

| /usr/lib/crti.o: In function `_fini':
| /usr/lib/crti.o(.fini+0x0): multiple definition of `_fini'
| crt1.o(.fini+0x0): first defined here

Πάλι το ίδιο εδώ...

| /usr/lib/crti.o(.got.plt+0x0): multiple definition of
| `_GLOBAL_OFFSET_TABLE_'
| /tmp/ccJdWWwE.o: In function `main':
| /tmp/ccJdWWwE.o(.text+0x0): multiple definition of `main'
| crt1.o(.text+0x80): first defined here

Στο δικό μου /usr/lib/crt1.o πάλι δεν υπάρχει καμία main, μόνο ένα
unresolved reference.

    hades # nm /usr/lib/ctr1.o | grep main
             U main

| /usr/lib/crti.o(.dynamic+0x0): multiple definition of `_DYNAMIC'

Κάτι αντίστοιχο μυρίζομαι εδώ, αφού στο /usr/lib/crti.o που έχω εγώ, δεν
έχει κανένα άλλο σύμβολο εξόν από τα _init και _fini!

| /usr/i486-linux/bin/ld: warning: cannot find entry symbol _start;
| defaulting to 08048680

Αν δεν υπάρχει στο τελικό πρόγραμμα ένα σύμβολο που να λέγεται _start, το
οποίο συνήθως πια δεν το γράφει ο προγραμματιστής, αφού πρέπει να το έχουν
οι run-time βιβλιοθήκες της C, τότε ο linker γκαρίζει όπως παραπάνω.

Να προσπαθήσω να μαντέψω;  Άλλαξες βιβλιοθήκη της C τώρα τελευταία;

-- 
Giorgos Keramidas, <keramida at ceid.upatras.gr>
Public PGP key at finger://keramida@diogenis.ceid.upatras.gr/
"Today is not yesterday's tomorrow, but tomorrow's yesterday."
--
====================================================================
Gia boithia (h na diagrafhte) e-mail sto majordomo at hellug.gr
Ta archives tis listas einai sto http://lists.hellug.gr/archives
prin steilete kapoia erothsh psakte mipos exei hdh apanththei.
Gia opoiodipote problima stilte e-mail ston owner-linux-greek-users at hellug.gr
====================================================================



More information about the Linux-greek-users mailing list