Magaz, The Greek Linux Magazine
Magaz Logo

Επόμενο  Προηγούμενο  Περιεχόμενα

2. Help Linux... Περί compilation.

Από : NIGHTSTALKER

Απάντηση : Γιώργος Κεραμίδας

Είμαι ένας τυχερός που ανακάλυψε έγκαιρα τη δύναμη του Linux και σταμάτησε να ασχολείται με σκουπίδια του τύπου WIN 95......

Έλα... ας μην είμαστε υπερβολικοί. Όπως αρέσει σε όσους ασχολούντια με Artificial Intelligence να λένε συνέχεια: "Κάθε πρόγραμμα έχει ένα σκοπό σε αυτή τη ζωή." Και τα Windows έχουν ένα σκοπό... να εκπαιδεύουν χρήστες στην χρήση απλών προγραμμάτων, μέχρι αυτοί να μάθουν αρκετά πράγματα για να στήσουν Linux (χεχε).

Έχω το DEBIAN V.1.3.1 με KERNEL 2.0.30 και έχω μερικές ερωτήσεις: Όταν κάνω make για να εγκαταστήσω μερικά utilities για linux που κατεβάζω από το net σχεδόν πάντα μου βγαίνει το μήνυμα:

 ',needed by xxx.. stop XXXX.c

Συγγνώμη που δεν μπορώ να σε βοηθήσω, αλλά οι πληροφορίες που μας έστειλες δεν είναι αρκετές. Και για να γίνω πιο σαφής:

  1. Ποια utilities σου βγάζουν αυτό το λάθος.
  2. Ποιο είναι το ακριβές (ολόκληρο, κι όχι κομμένο) μήνυμα που βλέπεις στην οθόνη σου.
Αν έχεις προβλήματα να σώσεις τα μηνύματα, χρησιμοποίησε την εντολή script(1) πριν κάνεις το compile, που ανοίγει ένα shell, του οποίου *όλα* τα μηνύματα καταγράφονται στο αρχείο "./typescript". Τότε κάνε:
  hades!keramida:~$ script
  hades!keramida:~$ make
                    ... mnvumata scrollarouv edw sav trella ...
  hades!keramida:~$ exit # bgaiveis apo to shell tou `script'
τότε παίρνεις το αρχείο "./typescript", και το στέλνεις mail για να δούμε ακριβώς ποιο είναι το πρόβλημα.

εννοείται ότι είμαι στον κατάλογο που έχω κάνει untar το πρόγραμμα και ότι υπάρχει makefile... έχω το GNU make και δεν ξέρω τι γίνεται... άλλες φορές όταν κάνω compile ένα πρόγραμμα σε c με το gcc

 
π.χ.. gcc ***.c -o ****
μου βγαίνει: UNDEFINED REFERENCE TO ....
το πρόγραμμα αυτό έχει και άλλα αρχεία μέσα τύπου *.O Τι γίνεται;;; Τι φταίει... Αν μπορείτε απαντήστε.

Και πάλι δεν είναι αρκετά όσα μας γράφεις για να καταλάβουμε ακριβώς τι είναι το πρόβλημα, αλλά θα προσπαθήσω να σου δώσω μερικές χρήσιμες συμβουλές που για εμένα έχουν δουλέψει τα τελευταία 3 χρόνια που ασχολούμαι με Unix και τον τελευταίο 1,5 χρόνο που ασχολούμαι με Linux, μια χαρά.

  • Δεν κάνεις ποτέ compile τα προγράμματα με:
            hades!keramida$ gcc *.c -o kati.exe
    
    γιατί μερικά χρειάζονται ειδικά flags στον GCC, άλλα θέλουν βιβλιοθήκες, οπότε πρέπει να γράψεις κάτι σαν:
            hades!keramida$ gcc *.c -o kati.exe -lm -lz -lrpm /lib/librpm.a
    
    κι αυτό είναι σχετικά μικρό command-line. Έχω δει και χειρότερα (ουπς) μεγαλύτερα ήθελα να πω :)))
  • Για να εγκαταστήσεις προγράμματα να χρησιμοποιείς *πάντα*, *ΠΑΝΤΑ* τα Makefiles που έρχονται μαζί με τα προγράμματα. Εμένα στο 99% των εγκαταστάσεων που έχω κάνει μου δουλεύει πάντα η εξής διαδικασία:
    1. Διαβάζω το README.TXT για να δω ό,τι γενικές πληροφορίες θέλει ο προγραμματιστής του πακέτου να διαβάσω. Αυτό είναι σημαντικό και σχεδόν ποτέ δεν έχει αποβεί άχρηστη ενέργεια, ειδικά όταν στήνω μεγάλα πακέτα (βλ. compilers, βιβλιοθήκες κτλ.)
    2. Διαβάζω το INSTALL.TXT για να δω αν το πρόγραμμα θέλει τίποτα "περίεργες" ρυθμίσεις για να στηθεί. Συνήθως, εδώ πέρα γράφει να κάνεις ότι λένε τα παρακάτω βήματα.
    3. Τρέχω (αν υπάρχει) το script που κάνει το αυτόματο configuration του πακέτου (./configure) με την παράμετρο --help για να δω αν τίποτα features (παράμετροι --enable-something ή μερικές φορές --with-something, --without-something) μου αρέσουν σαν defaults ή όχι.
                      hades!keramida$ ./configure --help
      
    4. Τρέχω το script ./configure με τις παραμέτρους που μου άρεσαν.
                      hades!keramida$ ./configure --with-auto --without-ekeivo
      
    5. Και τότε το Makefile είναι έτοιμο να κάνει τα πάντα.
                      hades!keramida$ make
                      hades!keramida$ make install
      

Μεγάλη και χρονοβόρα διαδικασία, σε σχέση με το απλό ( Start | Control Panel | Add/Remove Programs | Add Program...) των Windows, αλλά έτσι έχεις και τον πλήρη έλεγχο του τι θα στηθεί, που θα στηθεί, πως θα το βγάλεις αν θέλεις κάποια στιγμή ... κοκ. πράγματα που {IMHO} μέχρι τώρα μόνο το Unix προσφέρει σε ικανοποιητικό βαθμό.
Τέλος πάντων, άρχισα πάλι να μακρυγορώ και θα σταματήσω εδώ. Ελπίζω να βοήθησα κάπως, τουλάχιστον για τις μελλοντικές εγκαταστάσεις που θα κάνεις.
Adios...
--

Επόμενο  Προηγούμενο  Περιεχόμενα


Valid HTML 4.01!   Valid CSS!