PDA

View Full Version : [C] Help domanda banale su come compilare da terminale su osx


Solido
18-09-2013, 15:11
Come da titolo volevo sapere quali sono i comandi per far compilare un programma scritto in C da terminale da mountain lion.
Vi espongo il mio problema... ho scritto tramite text edit un banale hello world che vi posto di seguito ( a meno che non mi sia rincitrullito non ci dovrebbero essere errori)

#include <stdio.h>
int main(){

printf("Hello world");

}

ora però arriva il problema.. come ho detto ho scritto il codice con text edit, poi lo ho salvato in formato .c ( e anche qui mi fa i capricci perchè me lo salva .rtf e poi mi tocca rinominarlo in seguito.c) e lo salvo sulla scrivania.
Dopo questo vado sul terminale e digito questo comando:

gcc /Users/andrea/Desktop/helloworld.c

oppure cd gcc /Users/andreapaoli/Desktop/

e poi dopo

gcc helloworld.c (-o hello)

e quello che mi esce fuori quando premo invio è questo:


/Users/andrea/Desktop/helloworld.c:1: error: expected identifier or ‘(’ before ‘{’ token
/Users/andrea/Desktop/helloworld.c:1: error: stray ‘\’ in program
-----------------------------------------------------------------------------
( qui un ltro centinaio di queste righe di errore uguali ma solo col numerino incrementale)
/Users/andrea/Desktop/helloworld.c:7:31: warning: backslash-newline at end of file
/Users/andrea/Desktop/helloworld.c:7: error: stray ‘#’ in program
/Users/andrea/Desktop/helloworld.c:7: error: stray ‘\’ in program
/Users/andrea/Desktop/helloworld.c:7: error: stray ‘\’ in program


qualcuno sa darmi qualche dritta per favore?
io i comandi che ho trovato sono questi magari sto sbagliando qualcosa!:help:
Grazie!

kwb
18-09-2013, 16:15
Salvi il sorgente come main.c
Apri il terminale
Navighi tramide il comando cd dentro la directory del file ( ad es se il tuo file si trova sul Desktop, cd ~/Desktop/
Poi: gcc main.c

Solido
18-09-2013, 16:44
Salvi il sorgente come main.c
Apri il terminale
Navighi tramide il comando cd dentro la directory del file ( ad es se il tuo file si trova sul Desktop, cd ~/Desktop/
Poi: gcc main.c

stesso errore
a quanto pare il problema sta nel "programma"

Oceans11
18-09-2013, 18:45
quale editor hai usato?

a parte la mancanza di un valore di ritorno nel main, il codice è a posto.
Credo che l'editor che hai usato sporchi in qualche modo il tuo codice.

Solido
18-09-2013, 18:52
quale editor hai usato?

a parte la mancanza di un valore di ritorno nel main, il codice è a posto.
Credo che l'editor che hai usato sporchi in qualche modo il tuo codice.

uso text edit che penso sia l'unico che si trova di default su mac!
per quanto riguarda il main ho provato anche con :
void main ()
main()
main(void)
void main (void)

Oceans11
18-09-2013, 19:01
#include <stdio.h>

int main() {
printf("Hello world");
return 0;
}

questo è quello che intendevo. Non ho il mac, quindi non ti posso aiutare in quel senso, ma sono abbastanza sicuro che sia colpa dell'editor.
Magari inserisce qualche strano (e invisibile) carattere di controllo.

VICIUS
18-09-2013, 19:19
Fatti un favore. Apri l'app store cerca TextWrangler ed installalo. È gratuito ed un editor di testi come si deve con evidenziazione e tutto il resto. I messaggi che ti sta dando gcc non hanno senso per il codice sorgente che hai postato. Il problema è che textedit salva in rtf ed aggiunge un sacco di testo per la formattazione che tu non vedi ma c'è comunque.

Se vuoi vedere quello che contiene veramente nel file dai il comando
cat /Users/andrea/Desktop/helloworld.c

mr_hyde
18-09-2013, 19:30
Appena provato sul mio Mac con ML.
Ho scritto il rogente con VIm per Mac.

Il sorgente che hai postato a me va, penso anche io quindi si tratti di qualcosa che ha a che fare con l'editore che hai usato tu.

Per il main: in C sono un "classicista" e quindi preferisco una cosa tipo

#include <stdio.h>

int main(int argc, char** argv)
{
printf("Hello world\n");
return 0;
}


Per la cronaca, per compilare da linea di comando ho usato

gcc test.c -o test


Il compilatore installato dal mio XCode è:

gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

kwb
18-09-2013, 22:39
Usa textwrangler.

Solido
23-09-2013, 09:56
Grazie a tutti appena posso provo!:)