Compiler gcc σε λειτουργικό Ubuntu.....?

...IDE, compilers, κλπ

Συντονιστής: konnn

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό dtrzG » 25 Μαρ 2010, 00:42

Κώδικας: Επιλογή όλων
cd Desktop
ειναι η διευθυνση. Το neo.c ηταν περιττο ;) . Ολα ΟΚ ?
while ( ! ( succeed = try() ) );
Άβαταρ μέλους
dtrzG
Ubuntistas
Ubuntistas
 
Δημοσιεύσεις: 1115
Εγγραφή: 14 Δεκ 2009, 13:02
Τοποθεσία: /dev/null
IRC: dtrzG
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό lefos28 » 12 Απρ 2010, 22:59

Πέρασε λίγος καιρός και μιας και έχω μια εργασία (να κάνω server-client system) είπα να κάνω μια απόπειρα στο ubuntu αν και αρχάριος ακόμα......
Σας παραθέτω των κώδικα του server μιας και μόνο αυτόν έχω προσπαθήσει...........
όταν του κάνω compile μου βγάζει κάτι για την εντολή bzero , εγώ νομίζω οτί έχω κάνει πατάτα στις βιβλιοθήκες

Κώδικας: Επιλογή όλων
#include<sys/types.h>
#include<sys/socket.h>
#include<stdio.h>
#include <netinet/in.h>


int main(int argc , char* arg[] )
{
int sockfd, new_sockfd, sport;
char buf[256];
int n;
if (argc < 2)
{fprintf(stderr,"ERROR, port not exist\n");}
struct sockaddr_in servaddr, peer_addr;
sockfd=socket(AF_INET, SOCK_STREAM,0);
if (sockfd < 0)
error("Socket error");
bzero((char *) &servaddr, sizeof(servaddr));
sport = atoi(arg[1]);
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = INADDR_ANY;
servaddr.sin_port = htons(sport);
if (bind(sockfd, (struct sockaddr *) &servaddr,
sizeof(servaddr)) < 0)
error("Binding Error");
listen(sockfd,5);
new_sockfd = accept(sockfd,
(struct sockaddr *) &peer_addr,
sizeof(peer_addr));
if (new_sockfd < 0)
error(" Disconnected");
bzero(buf,256);
n = read(new_sockfd,buf,256);
if (n < 0) error("Reading Error");
printf("Here is the message: %s\n",buf);
n = write(new_sockfd,"Your message is:",100);
if (n < 0) error("Writing error");
return 0;
}


Για δείτε το και εσείς και πείτε μου την άποψή σας.
Γνώσεις ⇛Windows(Πολύ καλός)
Linux: Αρχάριος(Προς το άσχετος) Αγγλικά: Καλός
JAVA, C++,PHP,MySql,Javascript,Ajax,html,css(Βασικές Γνώσεις)
Λειτουργικό ⇛Windows 7 dual boot Ubuntu 9.10
Στόχος (Java developer).
lefos28
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 23 Μαρ 2010, 23:37
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό Nisok » 13 Απρ 2010, 00:01

@lefos28
Ναι dude, ξεχασες μια βιβλιοθήκη
Κώδικας: Επιλογή όλων
#include <strings.h>

Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό lefos28 » 13 Απρ 2010, 12:49

Έκανα κάποιες διορθώσεις..... και αν και μου βγάζει κάποια warnings πατάω στο terminal
gcc server.c -o server.exec
και στη συνέχεια ./server.exec και φαίνεται να τρέχει .........(ουσιαστικά περιμένει κάποιον πελάτη)

Έπειτα έφτιαξα έναν client και αφού τα έκανα όλα compile μετονομασιά σε .exec και έδωσα στον κώδικα δεδομένα όπως server ip address και server port 6789
ανοίγω νέο terminal για τον client και μου πετάει segmentation fault......... Aπο εδώ και πέρα δεν ξέρω τι να κάνω......
Οποιος πιστός ξέρει ας ρίξει καμιά ιδέα στο τραπέζι.
lefos28
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 23 Μαρ 2010, 23:37
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό Nisok » 13 Απρ 2010, 16:11

Το segmentation fault (9 στις 10), γενικά σημαίνει ότι έχεις κάποιο δείκτη σε κάτι, είτε κάποιο vector και βγαίνεις εκτός ορίων.

Γενικά καλό είναι να χρησιμοποιείς το try / catch όταν δουλεύεις δυναμικά.
Αν αναβάσεις όλο το κώδικά σου θα μπορέσω να βοηθήσω περισσότερο.
Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό lefos28 » 13 Απρ 2010, 18:31

Nisok έγραψε:Το segmentation fault (9 στις 10), γενικά σημαίνει ότι έχεις κάποιο δείκτη σε κάτι, είτε κάποιο vector και βγαίνεις εκτός ορίων.

Γενικά καλό είναι να χρησιμοποιείς το try / catch όταν δουλεύεις δυναμικά.
Αν αναβάσεις όλο το κώδικά σου θα μπορέσω να βοηθήσω περισσότερο.



Κώδικας: Επιλογή όλων
#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<netdb.h>
#include<strings.h>

int main()
{
int sockfd_cl,n;
char buf[256];
sockfd_cl=socket(AF_INET, SOCK_STREAM,0);
struct sockaddr_in servaddr;
bzero((char *) &servaddr, sizeof(servaddr));
servaddr.sin_family=AF_INET;
servaddr.sin_port=6789;
servaddr.sin_addr.s_addr= inet_addr("xxx.xxx.xxx.xxx");
connect(sockfd_cl, &servaddr , sizeof(servaddr));
if (connect(sockfd_cl,&servaddr,sizeof(servaddr)) < 0)
error("Disconnected");
printf("Type your message: ");
bzero(buf,256);
fgets(buf,256,stdin);
n = write(sockfd_cl,buf,strlen(buf));
if (n < 0)
error("ERROR");
bzero(buf,256);
n = read(sockfd_cl,buf,256);
if (n < 0)
error("ERROR ");
printf("%s\n",buf);
return 0;
}


Eυχαριστώ που ασχολείσαι με το πρόβλημα που έχω....
Γνώσεις ⇛Windows(Πολύ καλός)
Linux: Αρχάριος(Προς το άσχετος) Αγγλικά: Καλός
JAVA, C++,PHP,MySql,Javascript,Ajax,html,css(Βασικές Γνώσεις)
Λειτουργικό ⇛Windows 7 dual boot Ubuntu 9.10
Στόχος (Java developer).
lefos28
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 23 Μαρ 2010, 23:37
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό Nisok » 14 Απρ 2010, 00:24

Άβαταρ μέλους
Nisok
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 2637
Εγγραφή: 25 Ιαν 2009, 15:00
Τοποθεσία: /home
IRC: nisok
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό idomeneas » 15 Απρ 2010, 11:16

Καταρχήν γεια σου και απο μένα.
Το segmentation fault που παράγεται από τον κώδικα που παράθεσες φαίνεται να οφείλεται στη συνάρτηση error. Βάζοντας ένα printf πριν και μετά ή κανοντας αποσφαλμάτωση με gdb, θα βρεις ότι αυτό το core φαίνεται να βγαίνει κατά την κλήση της συνάρτησης
error("Disconnected").
Προσπάθησε να την ορίσεις πριν τη main(). Δηλαδή :
Κώδικας: Επιλογή όλων
void error(char* message);
void error(char* message){
perror(message);
exit(0);
}

Αυτό γιατί η perror() πρέπει να είναι μέσα σε αυτές που βρίσκονται στα αρχεία κεφαλίδες που έχεις ορίσει. Αν θες, ψάξε γιατί η μεταγλώτιση αναφέρει μηνύματα προειδοποίησης (warnings). Καλό είναι να μην υπάρχουν τέτοια μηνύματα. Επίσης δεν υπάρχει αρχείο strings.h αλλά string.h. Υπάρχουν κλήσεις σε συναρτήσεις εσωτερικά που απαιτούν το stdlib.h. Ακόμα για τη χρήση της perror() προσθέτουμε το αρχείο errno.h
Τέλος αν προσθέσεις άμεσα το αρχείο κεφαλίδα unistd.h, αντί του /sys/types.h (στο οποίο περιέχεται όμως), και το αρχείο arpa/inet.h δε θα έχεις τόσα προειδοποιητικά μηνύματα.Ένα τελευταίο warning αφορά τη μετατροπή της δομής servaddr από τύπο sockaddr_in σε τύπο const *sockaddr η οποία θα γίνει αν γράψεις
Κώδικας: Επιλογή όλων
connect(sockfd_cl,(struct sockaddr*)&servaddr,sizeof(servaddr));
αντί αυτού που έγραψες. Η μεταγλώτιση που δοκιμάστηκε έγινε στο τερματικό με
Κώδικας: Επιλογή όλων
gcc -o test.o -Wall test.c
και δεν έβγαλε κανένα μήνυμα. Τώρα για το τι κάνει το πρόγραμμα όταν το τρέχεις, αυτό εσύ θα πρέπει να το ξέρεις. Δε μπορώ να βοηθήσω πάνω σε αυτό.
Λειτουργικό ⇛ Ubuntu 10.04 64 bit σε HP Pavilion dv7-3110ev
Προδιαγραφές φορητού ⇛ Core i3 2.13 GHz │ 3 GB │ nVidia G105M │ Broadcom 4357 │ Bluetooth ? │ Realtek HD Audio │ 17.3"
Λειτουργικό ⇛ Ubuntu 10.04 32 bit/Win XP σε desktop
Προδιαγραφές desktop ⇛ Pentium 4 3 GHz │ 2 GB DDR │ Sapphire ATi Radeon HD3450 512MB AGP │ Μητρική: Asus P5V800-MX
idomeneas
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 738
Εγγραφή: 09 Απρ 2010, 15:47
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό lefos28 » 15 Απρ 2010, 20:57

Θα το τσεκάρω και θα σου πω........ χθές διάβασα το λινκ που μου επισύναψε Νisok .....και νομίζω οτί κατάλαβα το λάθος μου .......
Οπως και ανέφερα το λάθος είναι στον client γιατί ο server αν και πετάει ένα warning τρέχει κανονικά.......δηλαδή περιμένει να συνδεθει με ένα πελάτη ............βέβαια τα προγραμματάκια είναι σε πειραματικό στάδιο , πράγμα που σημαίνει οτί χρειάζονται κάποιες τελευταίες πινελίτσες.....
Όπως και να έχει θα το κοιτάξω και θα σας ενημερώσω , και πάλι ευχαριστώ για τη βοήθεια.
Γνώσεις ⇛Windows(Πολύ καλός)
Linux: Αρχάριος(Προς το άσχετος) Αγγλικά: Καλός
JAVA, C++,PHP,MySql,Javascript,Ajax,html,css(Βασικές Γνώσεις)
Λειτουργικό ⇛Windows 7 dual boot Ubuntu 9.10
Στόχος (Java developer).
lefos28
babeTUX
babeTUX
 
Δημοσιεύσεις: 14
Εγγραφή: 23 Μαρ 2010, 23:37
Εκτύπωση

Re: Compiler gcc σε λειτουργικό Ubuntu.....?

Δημοσίευσηαπό jemadux » 21 Απρ 2010, 17:29

για c++ υπαρχει διαφορετικη εντολή?
1 Γνώσεις Linux: ✅✅✅✔️✔️ ┃ Προγραμματισμού: ✔️✔️✔️✔️✔️ ┃ Αγγλικών: ✅✅✅✔️✔️
2 Debian Stable (en_US.UTF-8)
3 AMD Ryzen 5 2500U Radeon Vega Mobile Gfx ‖ RAM 16MiB ‖ Dell Inspiron 3585
4 Radeon Vega Mobile Gfx
5 Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter
Άβαταρ μέλους
jemadux
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 841
Εγγραφή: 27 Σεπ 2009, 19:39
Τοποθεσία: /dev/null
IRC: jemadux
Εκτύπωση

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

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Εφαρμογές για Ανάπτυξη Λογισμικού