|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2007
Messaggi: 48
|
Codice C per Linux
Cari esperti buongiorno, sono un utente del tutto nuovo al mondo di Linux e mi trovo al cospetto di un problema che da solo non riesco proprio a risolvere.
Ho installato Ubuntu per eseguire un codice scritto in C che gira solo sotto Linux, ma che devo cercare di far funzionare per continuare a lavorare alla mia tesi. Il programma in questione è composto dalla seguente lista di files: arith.c bmc.c constants.h datatypes.h Makefile probe.c protocol.c ptpd.c ptpd.h \dep\constants_dep.h \dep\datatypes_dep.h \dep\msg.c \dep\net.c \dep\ptpd_dep.h \dep\servo.c \dep\startup.c \dep\sys.c \dep\timer.c Ma quando nella finestra del terminale, effettuando il login come "root", digito la stringa: "gcc -c ptpd.c -o ptpd" Ottengo il seguente risultato: ------------------------------------------------------ In file included from ptpd.h:7, from ptpd.c:3: dep/constants_dep.h:13:23: error: netinet/in.h: No such file or directory dep/constants_dep.h:14:19: error: net/if.h: No such file or directory dep/constants_dep.h:15:23: error: net/if_arp.h: No such file or directory dep/constants_dep.h:21:19: error: endian.h: No such file or directory In file included from ptpd.h:9, from ptpd.c:3: datatypes.h:332: error: ‘IF_NAMESIZE’ undeclared here (not in a function) datatypes.h:337: error: ‘INET_ADDRSTRLEN’ undeclared here (not in a function) In file included from ptpd.h:10, from ptpd.c:3: dep/ptpd_dep.h:6:19: error: stdlib.h: No such file or directory dep/ptpd_dep.h:7:18: error: stdio.h: No such file or directory dep/ptpd_dep.h:8:19: error: string.h: No such file or directory dep/ptpd_dep.h:9:19: error: unistd.h: No such file or directory dep/ptpd_dep.h:10:18: error: errno.h: No such file or directory dep/ptpd_dep.h:11:19: error: signal.h: No such file or directory dep/ptpd_dep.h:12:18: error: fcntl.h: No such file or directory dep/ptpd_dep.h:13:21: error: sys/stat.h: No such file or directory dep/ptpd_dep.h:14:17: error: time.h: No such file or directory dep/ptpd_dep.h:15:21: error: sys/time.h: No such file or directory dep/ptpd_dep.h:16:22: error: sys/timex.h: No such file or directory dep/ptpd_dep.h:17:23: error: sys/socket.h: No such file or directory dep/ptpd_dep.h:18:23: error: sys/select.h: No such file or directory dep/ptpd_dep.h:19:22: error: sys/ioctl.h: No such file or directory dep/ptpd_dep.h:20:22: error: arpa/inet.h: No such file or directory In file included from ptpd.h:10, from ptpd.c:3: dep/ptpd_dep.h:81: error: expected declaration specifiers or ‘...’ before ‘ssize_t’ dep/ptpd_dep.h:103: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘netRecvEvent’ dep/ptpd_dep.h:104: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘netRecvGeneral’ dep/ptpd_dep.h:105: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘netSendEvent’ dep/ptpd_dep.h:106: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘netSendGeneral’ ptpd.c: In function ‘main’: ptpd.c:14: warning: incompatible implicit declaration of built-in function ‘memcpy’ ptpd.c:43: warning: incompatible implicit declaration of built-in function ‘fprintf’ ptpd.c:43: error: ‘stderr’ undeclared (first use in this function) ptpd.c:43: error: (Each undeclared identifier is reported only once ptpd.c:43: error: for each function it appears in.) -------------------------------------------- Dove sbaglio? Qualora qualche anima candida volesse provare direttamente il codice, questo è disponibile al seguente indirizzo: ptpd.sourceforge.net Grazie per l'aiuto! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
C'è il makefile, non compilare un solo file: da terminale
Codice:
make Codice:
sudo make install In ogni caso direi che non trova degli headers. Prova ad installare libc6-dev, dovrebbe contenere tutti gli headers che richiede. Per fare in un attimo, da terminale basta il comando: Codice:
apt-get install libc6-dev
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) Ultima modifica di Gimli[2BV!2B] : 14-10-2007 alle 15:21. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Oct 2007
Messaggi: 48
|
Ci proviamo!
Con il comando apt-get install libc6-dev scarica direttamente il software da internet?
Cmq sia grazie mille, provo e ti faccio sapere. Gentilissimo! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Sì, devi essere connesso e lo preleva direttamente dai repository in rete.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2007
Messaggi: 48
|
Sono proprio impedito!
Diciamo che per compilarlo mi sono fatto dare una mano...me l'hanno spedito già fatto...ma ora non riesco ad avviarlo...nella cartella ora ci sono tutti i file .o e il file ptpd con l'icona degli "ingranaggi". Come faccio per mandarlo in esecuzione? Se provo da terminale digitando il nome del file mi dice: command not found e se ci faccio doppio click nn succede niente! come devo fare?
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Entra nella cartella del programma compilato e prova il make install da root (prima avevo dimenticato sudo)
Codice:
sudo make install Codice:
ptpd Altrimenti, solo nel caso in cui il makefile sia molto ma molto stringato e sia privo della sezione install (quindi solo se il comando sopra da errori), bisogna essere sicuri che il file abbia l'attributo di eseguibilità, e dirgli con cura cosa eseguire. In un terminale vai nella cartella dei sorgenti compilati e fai Codice:
chmod +x ptpd ./ptpd
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
![]() |
![]() |
![]() |
#7 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 6
|
visto che sto provando a far andare lo stesso codice mettiamoci in contatto..devi accertarti di aver connesso almeno 2 computer tramite un cavo incrociato o un collegamento LAN..
|
![]() |
![]() |
![]() |
#8 |
Junior Member
Iscritto dal: Oct 2007
Messaggi: 6
|
se invece di usare ubuntu uso redhat come faccio a far partire il programma?!
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:35.