View Full Version : eseguire gcc 0.4
Claudio M
13-02-2007, 13:45
Salve a tutti.
Ho appena istallato ubuntu 5.04 su un vecchio HW, ma non conosco linux.
Vorrei programmare in c++ (conosco dev c++ sotto win), ho quindi istallato il pacchetto gcc 4.0 e altri pacchetti che sospettavo essere collegati in qualche modo a c++. Come faccio a mandare in esecuzione?
Prego rispondere anche se la domanda č cosi stupida.
Garazie in anticipo.
soulinafishbowl
13-02-2007, 13:59
Salve a tutti.
Ho appena istallato ubuntu 5.04 su un vecchio HW, ma non conosco linux.
Vorrei programmare in c++ (conosco dev c++ sotto win), ho quindi istallato il pacchetto gcc 4.0 e altri pacchetti che sospettavo essere collegati in qualche modo a c++. Come faccio a mandare in esecuzione?
Prego rispondere anche se la domanda č cosi stupida.
Garazie in anticipo.
Se non ricordo male (l'ho usato solo per un breve periodo) dev c++ e' quello che si chiama un "ambiente integrato di sviluppo". Puoi usarlo come editor per i tuoi file sorgenti, schiacci un tastino e lui te li compila e te li manda in esecuzione. Automaticamente.
gcc e' SOLO il compilatore. Devi usare un editor di testo (tipo emacs) per scrivere il codice. Dopodiche' TU dovrai far compilare il programma da gcc per ottenere un eseguibile.
Poniamo che tu abbia un singolo file: main.cpp; digitando g++ -o nome_output main.cpp il tuo file verra' compilato e potrai lanciare il programma digitando ./nome_output eventuali_opzioni.
- se non usi l'opzione -o nome_output, il nome del file eseguibile sara' automaticamente a.out;
- il prefisso ./ davanti al nome del file indica che e' nella directory corrente.
Se hai piu' file, allora devi creare un file oggetto per ogni singolo file e poi linkarli insieme.
Dimmi se sono cose che sai gia' fare o meno.
EDIT: comunque fossi in te posterei in Programmazione.
Claudio M
13-02-2007, 14:30
Grazie Mille.
Funziona, incredibile.
Per il momento ero solamente interessato a compilare un file per volta.
Penso di risolvere il problema di "compilare un progetto" includendo nel main altri file.h e relativi file cpp, con la speranza che una volta compilato il main fa tutto da solo.
Gią che ci sono. Tutto questo č nato perchč voglio comandare la porta parallela
per un sistema di automazione. Chissą se dal punto di vista software ho tutto il necessario.
Grazie di nuovo.
soulinafishbowl
13-02-2007, 22:40
Penso di risolvere il problema di "compilare un progetto" includendo nel main altri file.h e relativi file cpp, con la speranza che una volta compilato il main fa tutto da solo.
No, non funzionerą. Devi giustamente includere i file necessari in ogni file, dopidoché compili i singoli file per ottenere i file oggetto, quindi linki insieme i file oggetto.
Per chiarire, immaginiamo tu abbia il main() in main.cpp, che sfrutta qualcosa contenuto in Pippo.h e Pippo.cpp, che a sua volta sfrutta qualcosa che sta in Pluto.h e Pluto.cpp.
In main.cpp -> #include "Pippo.h"
in Pippo.h -> #include "Pluto.h"
primo passo:
g++ -c main.cpp
g++ -c Pippo.cpp
g++ -c Pluto.cpp
ed ottieni i file main.o, Pippo.o, Pluto.o. (L'ordine con cui li ottieni non č importante)
secondo passo:
g++ -o nome_output main.o Pippo.o Pluto.o ed ottieni il tuo eseguibile.
Claudio M
26-02-2007, 17:59
Mille Grazie! Molto gentile!
se poi vuoi facilitare la compilazione e l'aggiunta di altri file da compilare:
CC=g++
CFLAGS=-Wall
PRG=test
OBJFILES := $(patsubst %.c,%.o,$(wildcard *.c))
all: $(OBJFILES)
$(CC) $(CFLAGS) $(OBJFILES) -o $(PRG)
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
clean:
rm -f *.o $(PRG)
crea un file con nome makefile nella cartella con i sorgenti, e poi con il comando "make" compili con "make clean" pulisci gli object file e l'eseguibile.
Claudio M
26-02-2007, 22:06
Grazie anche a te Vizz, molto utile. Ciao.
Claudio M
26-02-2007, 22:41
Sempre riguardo alla compilazione di un programma in c++, avrei un'altra domanda:
Al fine di comandare la porta parallela ho necessitą di includere:
#include conio.h
ma in fase di compilazione non trova questo file.
mi sembra strano che non ci sia, forse devo solo impostare bene il compilatore, ma come al solito non sono capace co linux.
Grazie.
su linux conio non esite...guarda questa discussione per qualche consiglio:
http://www.hwupgrade.it/forum/showthread.php?t=1369680&highlight=ppdev
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.