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

σχετικα με κώδικα C, σε περιβάλλον linux


feodor

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

Καλησπέρα,

 

Προσπαθω να τρέξω  στη κονσόλα καποιες γραμμές κώδικα που έχω γράψει αλλα μου βγαίνει αυτό το μήνυμα λάθους:

 

izzy@izzy-VPCEB1S1E ~/CCPP $ gcc -o main main.c
main.c:1:18: fatal error: stdio.h: No such file or directory
compilation terminated.

 

Γιατί γράφει stdio.h: No such file or directory; Αφού η stdio.h είναι βιβλιοθήκη της C;

 

Ο κώδικας που έχω γράψει είναι:

Source.png Πηγή: #include<stdio.h>
#include<math.h>

main()
{
long i;
double sum, right_side, pi;

i=1;
sum=0.0;
do {
right_side=(1/((double)i)*((double)i));
sum=sum+right_side;
i++;
} while right_side>(10^(-15));

pi=sqrt(6*right_side);

printf("After %20l repetitions, we found that pi equals %10.8d\n",i-1,pi);
}

 

Το ξέρω ότι σίγουρα έχει λάθη, αλλά ήθελα να το τρέξω πρώτα και στη συνέχεια να ψαξω τι λάθη έχω κάνει.

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

Δοκίμασε να αφήσεις κενό μεταξύ #include και των <>, αν και δεν θα έπρεπε να έχεις πρόβλημα με αυτό εγκατέστησε πάλι το πακέτο build-essentials. Επίσης να ξέρεις ότι για την math.h μπορεί να χρειαστεί να την "καλέσεις" και στο compile gcc -o main main.c -lm

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

Δοκίμασε να αφήσεις κενό μεταξύ #include και των <>, αν και δεν θα έπρεπε να έχεις πρόβλημα με αυτό εγκατέστησε πάλι το gcc. Επίσης να ξέρεις ότι για την math.h μπορεί να χρειαστεί να την "καλέσεις" και στο compile gcc -o main main.c -lm

 

Σ' ευχαριστω φιλε μου για την απάντηση

 

Βασικα δοκιμασα την εντολη sudo apt-get install build-essential και πρεπει να λυθηκε το θέμα

Όσο για την εντολη -lm, θα το δοκιμασω. Αν και τώρα "πειραματίζομαι" λίγο με το Geany (IDE), οπότε δεν μου χρειάζεται προς το παρόν.

 

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

Το πρόβλημα είναι το -lm. Το χρειάζεται για να κάνει linking τη βιβλιοθήκη. Αυτό που το κενό που ακούστηκε δεν παίζει για κανένα λόγο.

 

Τέλος, καλύτερα είναι να κάνεις compile με τα flags -Wall -Wextra. Σου εμφανίζουν warnings που γενικά θα σε βοηθήσουν. Πχ:

gcc -g -Wall -Wextra main.c -o main

To -g είναι το flag το οποίο σου επιτρέπει να χρησιμοποιήσεις debugger (gdb).

 

Άλλο τραγικό λάθος! Όταν δηλώνεις τη main πρέπει να βάζεις και τον επιστρεφόμενο τύπο, ο οποίος είναι int.

int main(int argc, char *argv[])
{
        ...
}

ή

int main(void)
{
        ...
}

Για ό,τι θέμα έχεις μπορείς να γράψεις και στην κατηγορία Προγραμματισμού.

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

Φιλε gon1332, αρχικα ευχαριστω και σενα για τον χρονο σου. Να πω ομως οτι εφυγα απο το περιβαλλον linux και γυρισα σε windows. Όσο για το int main(), δεν το εβαλα έτσι γιατι δεν το εχει έτσι στις σημειωσεις απ' όπου διαβάζω.

 

Δεύτερον, θα ηθελα να παρακαλέσω κάποιο mod να μεταφέρει το θέμα μου στο υποφορουμ του προγραμματισμού.

Το ζητάω επειδή ενδέχεται να έχω κι άλλες απορίες στο μέλλον που αφορούν τη C, και για να μην ανοίγω καινούρια topics...

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

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

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

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

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

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

Σύνδεση

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

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