Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [C] Header Files

  1. #1

    Header Files

    Salve ecco un semplicissimo esempio preso dal web che prevede l'utilizzo di header files,
    vorrei sapere:
    1. se il codice dei tre file è corretto
    2. la sequenza di comandi per compilare e mandare in esecuzione il tutto sotto linux (ubuntu) con GCC (non so ..dovrei creare un makefile??)
    Grazie in anticipo a tutti voi!

    //File main.c

    #include "f2c.h"

    main() { float c = fahrToCelsius(86);
    }

    //File f2c.c

    float fahrToCelsius(float f) {
    return 5.0/9 * (f-32);
    }

    //File f2c.h

    float fahrToCelsius(float);

  2. #2

  3. #3
    penso che il makefile sia più pratico
    codice:
    CC=gcc
    CFLAGS=-g
    APPNAME=nome_applicazione
    INCLUDE=	-I/dir_mio_include 		\
                    -I/dir_di_altri_include  -I./ 		
    LIB=								\
    		-lmia_libreria
    SRCFILES=        file1.c	\
    		file2.c        \
    		file3.c
    $(APPNAME) : $(SRCFILES)
    	   $(CC) $(CFLAGS)  $(INCLUDE) $(SRCFILES) -L$(HOME)/lib $(LIB) -o $(HOME)/bin/$(APPNAME)
    ciao
    segio

  4. #4

    Grazie mille ..ma il makefile?

    Grazie innanzitutto ragazzi!
    Compilando tutti i file da linea di comando tutto ok..ma adesso volevo imbattermi nella generazione del makefile visto che può essere molto utile per un progetto modulare. Vi chiedo:
    1. quale deve essere il formato del file make?
    2. deve essere anch'esso compilato e poi eseguito?

    A breve aggiornamenti sul risultato del mio primo make,grazie ancora, Sergio!

  5. #5

    Makefile problems

    Ecco il mio makefile salvato nella stessa cartella in cui sono contenuti i 3 files sopraelencati da esempio, ossia (f2c.c main.c f2c.h), nel file di testo chiamato "makefile":

    CC=gcc
    CFLAGS=-g
    APPNAME=prova
    INCLUDE= -I/f2c.h \
    SRCFILES = f2c.c \
    main.c
    $(APPNAME) : $(SRCFILES) $(CC) $(CFLAGS) $(INCLUDE) $(SRCFILES) -o $(HOME)/$(APPNAME)


    lancio il comando make -f makefile
    e mi da errore : ... no rule to make target gcc needed ...

  6. #6

    Re: Makefile problems

    Originariamente inviato da sergiosommese
    Ecco il mio makefile salvato nella stessa cartella in cui sono contenuti i 3 files sopraelencati da esempio, ossia (f2c.c main.c f2c.h), nel file di testo chiamato "makefile":

    CC=gcc
    CFLAGS=-g
    APPNAME=prova
    INCLUDE= -I/f2c.h \
    SRCFILES = f2c.c \
    main.c
    $(APPNAME) : $(SRCFILES) $(CC) $(CFLAGS) $(INCLUDE) $(SRCFILES) -o $(HOME)/$(APPNAME)


    lancio il comando make -f makefile
    e mi da errore : ... no rule to make target gcc needed ...
    devi scriverlo così
    codice:
    $(APPNAME) : $(SRCFILES)
        $(CC) $(CFLAGS) $(INCLUDE) $(SRCFILES) -o $(HOME)/$(APPNAME)
    ciao
    sergio

  7. #7

    ERRORE: ***missing separator

    Ecco il codice del file di testo "makefile"

    CC=gcc
    CFLAGS=-g
    APPNAME=prova
    INCLUDE= -I/f2c.h \
    SRCFILES= f2c.c \
    main.c
    $(APPNAME) : $(SRCFILES)
    $(CC) $(CFLAGS) $(INCLUDE) $(SRCFILES) -o $(HOME)/$(APPNAME)

    ------------------------------------------------------------------------------------------
    lancio make -f makefile e l'errore è :

    makefile:8: *** missing separator. Stop.

    Ossia proprio in corrispondenza dell'ultima riga del codice.
    Grazie ancora.
    Ciao!

  8. #8
    codice:
    INCLUDE= -I/f2c.h \
    la barra inversa finale si deve usare solo se l'istruzione la continui sulla riga seguente, in questo caso non è così, quindi eliminala.
    La buoi lasciare nella riga seguente o scrivere in maniera più chiara
    codice:
    SRCFILES = f2c.c main.c
    ciao
    sergio

  9. #9

    sempre ERRORE!

    Mi spiace se sto facendoti perdere tempo su una cosa così banale ma da sempre errore missing separator

    CC=gcc
    CFLAGS=-g
    APPNAME=prova
    INCLUDE= -I/f2c.h
    SRCFILES= f2c.c main.c
    $(APPNAME) : $(SRCFILES)
    $(CC) $(CFLAGS) $(INCLUDE) $(SRCFILES) -o $(HOME)/$(APPNAME)


    make -f makefile
    makefile:7: *** missing separator. Stop.

  10. #10
    l'opzione -I (i maiuscola) vuole una directory, se i file include sono nella stessa directory del programma scrivi

    INCLUDE=-I./

    ciao
    sergio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.