Buongiorno a tutti!
Ho appena iniziato a programmare con le librerie POSIX in C e sto tentando di scrivere un makefile su gEdit. Io ho scritto questo:

target: 
    echo "compile my application"
    gcc -Wall es1.c -o myLs
    ./myLs /home/luca/soEx01

dove il path /home/etc è un parametro passato da command line e ho messo un TAB prima delle tre righe sotto target. Per quale motivo mi viene detto dalla riga 2 in poi

"Makefile:2: *** missing separator. Stop."

quando ho messo una tabulazione? Il copia incolla dal sito di un mio professore funziona.
Grazie in anticipo!

chiesto 23 Jul '15, 17:37

Strcmp_01's gravatar image

Strcmp_01
457711

modificato 23 Jul '15, 20:06

dadexix86's gravatar image

dadexix86 ♦♦
17.0k916161

Scusate, non ha preso gli "a capo". le righe con i TAB iniziano con "echo", "gcc" e "./myLs". Grazie!

(23 Jul '15, 17:39) Strcmp_01 Strcmp_01's gravatar image

È perché devi utilizzare il markdown :)

(23 Jul '15, 20:07) dadexix86 ♦♦ dadexix86's gravatar image

@Strcmp_01: fai vedere l'output di "cat -A Makefile", così da vedere il vero contenuto del makefile

(23 Jul '15, 20:10) enzotib ♦♦ enzotib's gravatar image

L'output è il seguente:

target :$
^Iecho "compiling my applications"$
^Igcc -Wall es1.c -o myLs$
     ./myLs /home/andrea/soEx01$

Ho provato a scrivere nel mio makefile al posto del tab ^I, ma non funziona.

@dadexix86 cosa significa? :)

(23 Jul '15, 23:26) Strcmp_01 Strcmp_01's gravatar image

@dadexix86 ho visto che hai modificato il mio messaggio per renderlo più chiaro, grazie :)

^Iecho "compiling my applications"$
^Igcc -Wall es1.c -o myLs$
./myLs /home/andrea/soEx01$

Spero di aver utilizzato una migliore identazione adesso :)

(23 Jul '15, 23:31) Strcmp_01 Strcmp_01's gravatar image

Ottimo, hai capito da solo cosa è il markdown ;)

Però a meno di rispondere alla (tua, in questo caso) domanda principale, utilizza i commenti e non le risposte, grazie.

(24 Jul '15, 08:18) dadexix86 ♦♦ dadexix86's gravatar image

Ok grazie! Scusate, non avevo visto che si potesse rispondere al singolo commento! @enzotib ho messo il tab, ma a differenza delle prime due righe in cui il tab viene riconosciuto (e mi viene ^I come ho scritto prima) nell'ultima riga viene identato di un tab. Vuol dire che non riconosce il carattere se schiaccio tab?

(24 Jul '15, 09:41) Strcmp_01 Strcmp_01's gravatar image

@Strcmp_01: una cosa è quello che vedi in gedit, ed altra cosa è quello che vedi nell'output di cat -A. In gedit non devi vedere ^I, devi vedere il tab come una sequenza di spazi. Se nell'output di cat non vedi ^I ma vedi degli spazi, significa che ci sono gli spazi, quindi torna in gedit, cancella gli spazi e premi tab.

(24 Jul '15, 10:05) enzotib ♦♦ enzotib's gravatar image
1

Grazie a tutti, ho scoperto che in automatico andava a cambiare il TAB con un certo numero di spazi. Per chi fosse interessato: Edit -> Preferences -> Editor -> togliere la spunta a "Insert spaces instead of tabs"

(24 Jul '15, 10:12) Strcmp_01 Strcmp_01's gravatar image

@Strcmp_01: ho trasformato il mio commento in risposta, potresti considerare di accettare questa risposta.

(24 Jul '15, 12:27) enzotib ♦♦ enzotib's gravatar image

Con

cat -A nomefile

puoi vedere effettivamente quali sono i caratteri presenti nel file: il TAB è mostrato come ^I. Quello che vedo è cheall'inizio dell'ultima riga non c'è il tab, prova a sistemare questo.

coll. permanente

ha risposto 24 Jul '15, 08:24

enzotib's gravatar image

enzotib ♦♦
14.1k113187

modificato 24 Jul '15, 12:27

La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×7

domanda posta: 23 Jul '15, 17:37

domanda visualizzata: 2,675 volte

ultimo aggiornamento: 24 Jul '15, 12:27

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.