Newsgroup: it.comp.macintosh
Titolo: compilazione e terminale

forse la domanda è stupida, ma saprete perdonarmi.
ho un file esempio.c sul desktop che devo compilare da terminale.
il comando gcc esempio.c non funziona (gcc command not found), ma 
googlando ho trovato l'alternativo ./esempio.c (sempre se ho capito bene).
il risultato è "permission denied", e non posso andare avanti, qualche 
suggerimento?
inoltre effettuando il login come root (su) non mi riconosce più la 
password di amministratore!
alecs.

 password di amministratore!
Uhmmm l'utente root č abilitato?
Luca

 Luca
alecs.

 googlando ho trovato l'alternativo ./esempio.c (sempre se ho capito bene).
No. Hai della gran confusione :))
Allora ti manca il compilatore: installa i developers tools. 
Allora
$ gcc -o esempio esempio.c
compila e genera "esempio" che puoi eseguire con 
./esempio
Se invece stai usando un linguaggio interpretato potresti (bash, tcl,
python, perl, ruby, ... , NON java ) fare direttamente 
./esempio.py [ nel caso di python, se no .pl, .sh etc ]
Questo se e solo se il file ha i byte eseguibili settati e al suo inizio
specifica l'interprete. Esempio
esempio.py
--------------------
#!/usr/bin/python
print "Hello"
esempio.sh
-------------------
#!/bin/bash
echo "Hello"
Per renderli eseguibili, 
chmod 755 esempio.py
Se hai maggiori domande, chiedi pure.
-- 
L'idiozia trascende il mezzo con cui viene espressa.

 
in realtā seguivo passo passo questa guida:
http://homepage.mac.com/marco_coisson/Tutorial/IntroAlLinguaggioC/Versione_html/cap3.html
mi posso fidare? magari hai qualche link pių esauriente (mi interessa 
prevalentemente C da osx)
intanto grazie,
alecs.

 cioè? scusami ma sono ancora abbastanza niubbo,come faccio a saperlo?
Da Gestione NetInfo
http://docs.info.apple.com/article.html?artnum=106290-T
-- 
La matematica non  possiede soltanto la verità, 
ma anche la bellezza suprema, una bellezza fredda  ed austera, 
come quella della scultura. 
[ Bertrand Arthur William Russell ]

 
grazie.
alecs.


Cioč fatto cosa? ./esempio.c NON PUO' funzionare per il semplice fatto 
che stai cercando di eseguire un file di testo :-P
Dentro al pacchetto XCode Tools dovresti trovare il gcc, e a questo 
punto compilare con il comando gcc esempio.c (oppure gcc -o esempio 
esempio.c e poi far partire ./esempio)
Luca

 ma l'ho fatto!
Se scrivi:
/usr/bin/gcc
cosa ti dice?
-- 
.: Jazzman :.
"Prendere per il culo era facile, il difficile era esserlo di fino"
                                               (R.Bounty su i.vr.d)

 
powerpc-apple-darwin8-gcc-4.0.0: no input files
alecs.

 Luca
ok, adesso funziona, ma ho dovuto riavviare.
comunque mi  mi dà un sacco di errori, eppure ho fatto cut&paste
#include <stdio.h>
int main(void)
{
     char  carlo;
     int  irene;
     long  luigi;
     float francesca;
     double daniela;
     short salvatore;
     printf("MacOS X\n");
     printf("\n");
     carlo='c';
     irene=-1460;
     luigi=140721;
     francesca=-3.18;
     daniela=12.774e-65;
     salvatore=19;
     printf("char ha dimensione di %d byte\n",sizeof(char));
     printf("int ha dimensione di %d byte\n",sizeof(int));
     printf("long ha dimensione di %d byte\n",sizeof(long));
     printf("float ha dimensione di %d byte\n",sizeof(float));
     printf("double ha dimensione di %d byte\n",sizeof(double));
     printf("short ha dimensione di %d byte\n",sizeof(short));
     printf("carlo = %c\n",carlo);
     printf("irene = %d\n",irene);
     printf("luigi = %d\n",luigi);
     printf("francesca = %g\n",francesca);
     printf("daniela = %g\n",daniela);
     printf("salvatore = %d\n",salvatore);
     return(0);
}
alecs.

 powerpc-apple-darwin8-gcc-4.0.0: no input files
Quindi c'era ma non lo trovava, il che č normale appena installato.
Ora che hai riavviato te lo trova senza specificare il percorso.


 mi dà un sacco di errori
Non dire "mi da' un sacco di errori". Posta gli errori.
Da me:
[Sango:~]
  l0ne$ pbpaste > zibo.c
[Sango:~]
  l0ne$ gcc -o zibo zibo.c
[Sango:~]
  l0ne$ ./zibo
MacOS X
char ha dimensione di 1 byte
int ha dimensione di 4 byte
long ha dimensione di 4 byte
float ha dimensione di 4 byte
double ha dimensione di 8 byte
short ha dimensione di 2 byte
carlo = c
irene = -1460
luigi = 140721
francesca = -3.18
daniela = 1.2774e-64
salvatore = 19
[Sango:~]
  l0ne$ 
 - ∞


esempio.c:1: error: parse error before '{' token
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: warning: data definition has no type or storage class
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:5: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: syntax error at '#' token
esempio.c:12:17: warning: backslash-newline at end of file
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: conflicting types for built-in function 'printf'
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'luigi'
esempio.c:12: error: previous declaration of 'luigi' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'francesca'
esempio.c:12: error: previous declaration of 'francesca' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'daniela'
esempio.c:12: error: previous declaration of 'daniela' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'salvatore'
esempio.c:12: error: previous declaration of 'salvatore' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
iBook:~/desktop/c alecs$ #include <stdio.h>
iBook:~/desktop/c alecs$
iBook:~/desktop/c alecs$ int main(void)
-bash: syntax error near unexpected token `('
iBook:~/desktop/c alecs$ {
 >     char  carlo;
 >     int  irene;
 >     long  luigi;
 >     float francesca;
 >     double daniela;
 >     short salvatore;
 >
 >     printf("MacOS X\n");
-bash: syntax error near unexpected token `"MacOS X\n"'
iBook:~/desktop/c alecs$     printf("\n");
-bash: syntax error near unexpected token `"\n"'
iBook:~/desktop/c alecs$
iBook:~/desktop/c alecs$     carlo='c';
iBook:~/desktop/c alecs$     irene=-1460;
iBook:~/desktop/c alecs$     luigi=140721;
iBook:~/desktop/c alecs$     francesca=-3.18;
iBook:~/desktop/c alecs$     daniela=12.774e-65;
iBook:~/desktop/c alecs$     salvatore=19;
iBook:~/desktop/c alecs$
iBook:~/desktop/c alecs$     printf("char ha dimensione di %d 
byte\n",sizeof(char));
-bash: syntax error near unexpected token `"char ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$     printf("int ha dimensione di %d 
byte\n",sizeof(int));
-bash: syntax error near unexpected token `"int ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$     printf("long ha dimensione di %d 
byte\n",sizeof(long));
-bash: syntax error near unexpected token `"long ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$     printf("float ha dimensione di %d 
byte\n",sizeof(float));
-bash: syntax error near unexpected token `"float ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$     printf("double ha dimensione di %d 
byte\n",sizeof(double));
-bash: syntax error near unexpected token `"double ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$     printf("short ha dimensione di %d 
byte\n",sizeof(short));
-bash: syntax error near unexpected token `"short ha dimensione di %d 
byte\n",sizeof'
iBook:~/desktop/c alecs$
iBook:~/desktop/c alecs$     printf("carlo = %c\n",carlo);
-bash: syntax error near unexpected token `"carlo = %c\n",carlo'
iBook:~/desktop/c alecs$     printf("irene = %d\n",irene);
-bash: syntax error near unexpected token `"irene = %d\n",irene'
iBook:~/desktop/c alecs$     printf("luigi = %d\n",luigi);
-bash: syntax error near unexpected token `"luigi = %d\n",luigi'
iBook:~/desktop/c alecs$     printf("francesca = %g\n",francesca);
-bash: syntax error near unexpected token `"francesca = %g\n",francesca'
iBook:~/desktop/c alecs$     printf("daniela = %g\n",daniela);
-bash: syntax error near unexpected token `"daniela = %g\n",daniela'
iBook:~/desktop/c alecs$     printf("salvatore = %d\n",salvatore);
-bash: syntax error near unexpected token `"salvatore = %d\n",salvatore'
iBook:~/desktop/c alecs$
iBook:~/desktop/c alecs$     return(0);
-bash: syntax error near unexpected token `0'
iBook:~/desktop/c alecs$ }
-bash: syntax error near unexpected token `}'
iBook:~/desktop/c alecs$ gcc esempio.c
esempio.c:1: error: parse error before '{' token
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:1: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:2: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: error: stray '\' in program
esempio.c:3: warning: data definition has no type or storage class
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:4: error: stray '\' in program
esempio.c:5: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:6: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: stray '\' in program
esempio.c:8: error: syntax error at '#' token
esempio.c:12:17: warning: backslash-newline at end of file
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: conflicting types for built-in function 'printf'
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'luigi'
esempio.c:12: error: previous declaration of 'luigi' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'francesca'
esempio.c:12: error: previous declaration of 'francesca' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'daniela'
esempio.c:12: error: previous declaration of 'daniela' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: conflicting types for 'salvatore'
esempio.c:12: error: previous declaration of 'salvatore' was here
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
esempio.c:12: error: parse error before string constant
esempio.c:12: warning: data definition has no type or storage class
alecs.

 iBook:~/desktop/c alecs$     printf("char ha dimensi
Stai facendo un po' di macello >_<
A parte il fatto che hai incollato nel terminale il sorgente C (e vabbe'
;D), tutte quelle '\' e '{' mi fanno pensare che hai salvato il .c come
RTF e non come testo semplice. Usa Xcode o un editor di solo testo come
SubEthaEdit per scrivere in C, o assicurati di registrare il sorgente
come testo semplice (Formato > Converti in formato Solo Testo) in
TextEdit.
 - ∞

Oddio che casino! non devi incollare tutto sul terminale!!! feermo 
ricominciamo, copia quell'esempio, incollalo in un editor di testo 
SEMPLICE, TextEdit va bene, basta che ti ricordi di andare su 
formato->Converti in formato solo testo
Bene ora salva il file come esempio.c nella tua home
vai sul terminale dai il comando ls e controlla che il file abbia 
estensione .c e non .c.txt
ora dai gcc -o esempio esempio.c
se il compilatore non restituisce errori digita ./esempio per eseguire 
il programma
Luca

 prevalentemente C da osx)
Va bene tutto quello che vale per uno *nix generico. Un buon libro di C
e via. Oppure intendi C x MacOS (ovvero usare le GUI etc di MacOS). Nel
caso suggerisco di passare ad ObjectiveC. Lavorare in Carbon + C č molto
pių complesso e scomodo.


 A parte il fatto che hai incollato nel terminale il sorgente C
no, questo non è vero.
evidentemente non ho fatto caso al formato .rtf
comunque dopo il tentativo di compilazione si è rinominato da solo in
.c, pur non funzionando
alecs.

 
no, C in generale.
mi interessa comprenderlo meglio come linguaggio, ma per fare altro.
alecs.

 .c, pur non funzionando
O_o qui mi hai completamente perso.
Mi esegui dal terminale, in quella cartella, file esempio.c cosi' magari
mi ci raccapezzo?
 - ∞

 mi interessa comprenderlo meglio come linguaggio, ma per fare altro.
Posso chiederti l'applicazione?
Per C tutto quello che trovi sul K&R vale anche su MacOS X. Se devi fare
programmazione *nix prendi in considerazione i libri di Stevens.
