Ciao a tutti!
Per un esame di reti dovrei implementare il gioco del tris: 2 client si connettono ad un server per giocare.
Ora il mio problema non sta tanto nello scrivere il codice quanto nel compilarlo. Il nostro professore ci ha fornito gran parte del codice e a noi basta scrivere solo client e server. Ci ha fornito inoltre il makefile per la compilazione. Io ho cambiato leggermente il makefile per aggiungere altri file alla compilazione e sulla mia distribuzione linux(fedora 17) funziona alla perfezione. La stessa cosa non si può dire invece su mac dove la compilazione genera 2 warning. Non vengono generati gli eseguibili.
Posto la risposta della compilazione
gcc -c error.c
error.c:108:17: warning: format string is not a string literal
(potentially insecure) [-Wformat-security]
syslog(level, buf);
^~~
1 warning generated.
gcc -c my_io.c
gcc -c my_signal.c
gcc -c tris.c
gcc -c -o trisClient.o trisClient.c
trisClient.c:3:1: warning: type specifier missing, defaults to 'int'
[-Wimplicit-int]
main(int argc, char *argv[]){ //2 argomenti 2-ip
^~~~
1 warning generated.
gcc -o trisClient trisClient.o error.o my_io.o tris.o basic.h
clang: error: cannot specify -o when generating multiple output files
make: *** [trisClient] Error 1
il secondo warning non è un problema(massa mettere nel codice int main invece che main)
il primo invece non l ho capito
ma credo che il problema vero e proprio sia la parte che dice "cannot specify -o ohe generating multiple output files". Ma non è vero che ho più file in out; ho solo più file in input!
voi sapete darmi una spiegazione?
posto anche il makefile
PROGS = error.o my_io.o my_signal.o tris.o trisClient trisServer
CC = gcc
CLEANFILES = error.o my_io.o my_signal.o tris.o trisServer.o trisClient.o
all: ${PROGS}
error.o: error.c basic.h
${CC} -c error.c
my_io.o: my_io.c basic.h
${CC} -c my_io.c
my_signal.o: my_signal.c my_signal.h basic.h
${CC} -c my_signal.c
tris.o: tris.c basic.h
${CC} -c tris.c
trisClient: trisClient.o error.o my_io.o tris.o basic.h
${CC} -o $@ $^
trisServer: trisServer.o my_signal.o error.o my_io.o tris.o basic.h
${CC} -o $@ $^
clean:
rm -f ${CLEANFILES}
rm -f ${PROGS}
rm -f *.*~
rm -f *~
avrei voluto allegare tutto il codice ma non trovo l'opzione per farlo...