Newsgroup: it.comp.os.linux.iniziare
Titolo: Makefile

Salve,
sono un nuovissimo utente linux (Fedora Core 5) e sto cercando di 
impratichirmi con alcune utility. In particolare sto cercando di usare 
make, ma ho qualche problema(ovviamente). Ho tre file .cpp e e .h da 
compilare. Ho scritto il make file in questo modo
all : start
start : provaOrd.o alg_ord.o vettore.o
	g++ -o start provaOrd.o alg_ord.o vettore.o
provaOrd.o : provaOrd.cpp vettore.h alg_ord.h
	g++ -c provaOrd.cpp
alg_ord.o: alg_ord.cpp alg_ord.h
	g++ -c alg_ord.cpp
vettore.o : vettore.cpp vettore.h
	g++ -c vettore.cpp
Quando da terminale digito make mi dice
g++ -c provaOrd.cpp
make: g++: Command not found
make: *** [provaOrd.o] Error 127
Che significa?
Grazie

 Che significa?
# which g++
che ti dice ?? hai installato il compilatore ? non so se Fedora lo installa
di default .... comunque il messaggio e' chiaro ... non trova g++
ciao ...
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 make: *** [provaOrd.o] Error 127
non trova g++
prova con gcc
appunto:
č buona norma usare una variabile dichiarata all'inizio del makefile,
tipo:
CC=gcc
...
...
...
start : provaOrd.o alg_ord.o vettore.o
	$CC-o start provaOrd.o alg_ord.o vettore.o
provaOrd.o : provaOrd.cpp vettore.h alg_ord.h
	$CC -c provaOrd.cpp
alg_ord.o: alg_ord.cpp alg_ord.h
	$CC -c alg_ord.cpp
vettore.o : vettore.cpp vettore.h
	$CC -c vettore.cpp
lo stesso vale per i flag di compilazione

RedWiz ha scritto:

Come posso installare il compilatore c++ allora? Cioč dove lo trovo e 
come lo installo? Scusate la grande ignoranza, ma sono veramente alle 
prime armi, ho messo linux solo da3 giorni.
Grazie

 Grazie
gcc Č il compilatore c++
non ce l'hai? sicuro?
nel caso, che distro usi? 

 prime armi, ho messo linux solo da3 giorni.
nel CD o DVD dovresti avere qualche package tipo 
gcc-<versione>
compat-gcc
lo devi solo installare ... non so Fedora come gestisce i pkg ... mi pare
con yum ?? se e' cosi' dovresti dare qualcosa tipo (e' solo un esempio !)
# yum install /mnt/cdrom/pkg/gcc-32


 Grazie
c++ di solito è un alias per g++.
g++ in realtà è un'estensione di gcc che consente a quest'ultimo di
compilare codice c++.
Quindi... installati gcc e g++, senza toccare nulla nel makefile.
--
Ciao
Blue

bluesky ha scritto:

Ok, installato gcc e compilato il programma, ora ho un eseguibile di 
nome start (so che in linux gli eseguibili non hanno alcuna estensione), 
ma non riesco ad avviarlo, col doppio clic non va, e se da terminale 
digito semplicemente start mi dice
bash: start: command not found
Vi specifico che sono nella directory in cui si trova l'eseguibile start 
ovviamente e infatti digitando il comando ls il file in questione è 
visibile (colorato in verde).
Dove sto sbagliando?
Grazie.

 Dove sto sbagliando?
$ ./start
devi mettere il ./ prima del nome del file ... linux cerca gli eseguibili
nelle directory specificate dalla variabile d'ambiente PATH :
$ echo $PATH
se vuoi lanciare un eseguibile in un altra directory o specifichi il
path completo
$ /home/pippo/altradir/start
oppure ti sposti nella dir e digiti il nome del file preceduto da ./
ciao


 
Ok, grazie a tutti, se volessi creare ora una libreria statica (e magari 
una dinamica) con i miei file .o e poi ricompilare? Come potri fare?
Grazie cmq