^BOOMBOOM Δημοσ. 25 Φεβρουαρίου 2006 Δημοσ. 25 Φεβρουαρίου 2006 Προσπαθώ να τρέξω κάποια προγράμματα fortran σε Linux και αντιμετωπίσω το εξής πρόβλημα: Φτιάχνω ενα αρχείο code.f , κάνω compile με εντολή πχ: f77 code.exe code.f ή f77 code.f και δημιουργείται ενα αρχείο a.out (ή code.exe), το οποίο όμως ενω είναι εκτελέσιμο (έχει σωστά permissions) δεν κάνει τίποτα, δοκίμασα στο prompt: a.out και μου βγάζει πως δεν αναγνωρίζει την εντολή αυτή. Το πρόβλημα το έχω σε Suse 10 και σε CentOS, σε παλαιότερη διανομή σε άλλο υπολογιστή που το είχα δοκιμάσει (suse νομίζω) το αρχείο που προέκυτπτε απο το compilation έτρεχε άμεσα. Καμια ιδέα τι φταίει?
Boban Δημοσ. 25 Φεβρουαρίου 2006 Δημοσ. 25 Φεβρουαρίου 2006 Patise ./code genika gia oti entoli den einai tou linux (dil oxi dir cd klp ) vazeis ./ mprosta
^BOOMBOOM Δημοσ. 25 Φεβρουαρίου 2006 Μέλος Δημοσ. 25 Φεβρουαρίου 2006 Δοκίμασα το ./ και δούλεψε άψογα, Boban σ'ευχαριστώ, με έσωσες αυτες τις 2 μέρες
eurander Δημοσ. 28 Φεβρουαρίου 2006 Δημοσ. 28 Φεβρουαρίου 2006 Και για να εξηγησουμε τι πραγματικα συμβαινει: Οταν δινεις μια εντολη, το λειτουργικο ψαχνει να βρει ενα εκτελεσιμο με αυτο το ονομα. Τυπικα, ψαχνει σε μερη οπως: /bin /usr/bin /usr/local/bin κλπ. Ολα αυτα τα μερη τα ψαχνει επειδη υπαρχουν σε μια μεταβλητη περιβαλλοντος που λεγεται PATH (μονοπατια τα οποια ψαχνει). Για να δεις που ψαχνει, μπορεις να δεις τα περιεχομενα της PATH εκτελωντας: echo $PATH Συνηθως το "./" δε βρισκεται μεσα στο $PATH, αρα το λειτουργικο δεν ψαχνει στο "./" για να βρει εκτελεσιμο, αρα αν του πεις σκετο "a.out" δε θα το βρει. Για να προσθεσεις μονοπατια στα οποια θελεις να ψαχνει για εκτελεσιμα, πρεπει να αλλαξεις την PATH. Αν θελεις πχ να προσθεσεις το "./" για να μη γραφεις καθε φορα "./a.out", αλλα σκετο "a.out", προσθετεις το "./". Αυτο γινεται σε bash πχ με: export PATH=$PATH:./ To ":" χωριζει τα arguments. Με το παραπανω λες να προσθεσει το "./" στα ηδη υπαρχοντα μονοπατια που βρισκονται μεσα στην PATH. Παλι για bash, μπορεις να βαλεις την παραπανω εντολη μεσα στο .bashrc σου ωστε να εκτελειται καθε φορα που ανοιγεις ενα shell. Αλλιως, θα πρεπει να την γραφεις καθε φορα που ανοιγεις ενα shell.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.