[Risolto] La mia prima compilazione
-
stefanoelle
- Prode Principiante
- Messaggi: 44
- Iscrizione: lunedì 29 ottobre 2007, 15:51
[Risolto] La mia prima compilazione
Sono alla mia prima compilazione in ambiente Linux.
Dovrei compilare un programma che mi hanno inviato, mi è stata fornita una serie di file cpp con relativi include e le uniche informazioni fornitemi sono:
1) Ti serve g++
2) Unzip dei file in una cartella e digita make.
Così ho fatto ed ovviamente non funziona, perchè ottengo il messaggio di errore:
Makefile:3: /tools/build/Rules.axis: Nessun file o directory
make: *** No rule to make target 'tools/build/Rules.axis'. Stop.
Bene, vado ad aprire il makefile e vedo che contiene quanto segue:
AXIS_USABLE_LIBS = UCLIBC GLIBC
AXIS_AUTO_DEPEND = yes
include $(AXIS_TOP_DIR)/tools/build/Rules.axis
PROGS = rtsp_client
CSRCS = $(wildcard *.c)
CXXSRCS = $(wildcard *.cpp)
OBJS = $(CSRCS:.c=.o)
OBJS += $(CXXSRCS:.cpp=.o)
CFLAGS += -W
##########################################################################
all: $(PROGS)
install: all
$(PROGS): $(OBJS)
$(CXX) $^ -o $@
clean:
rm -f $(PROGS) $(OBJS) *~
Per non sapere ne' leggere ne' scrivere vedo che ci sono dei riferimenti a delle directory che dovrei avere ma non ho (tipo tools/build/...).
Secondo voi sono io che dimentico qualcosa o mi manca qualche informazione che dovrebbero darmi ?
Grazie.
Stefano
Dovrei compilare un programma che mi hanno inviato, mi è stata fornita una serie di file cpp con relativi include e le uniche informazioni fornitemi sono:
1) Ti serve g++
2) Unzip dei file in una cartella e digita make.
Così ho fatto ed ovviamente non funziona, perchè ottengo il messaggio di errore:
Makefile:3: /tools/build/Rules.axis: Nessun file o directory
make: *** No rule to make target 'tools/build/Rules.axis'. Stop.
Bene, vado ad aprire il makefile e vedo che contiene quanto segue:
AXIS_USABLE_LIBS = UCLIBC GLIBC
AXIS_AUTO_DEPEND = yes
include $(AXIS_TOP_DIR)/tools/build/Rules.axis
PROGS = rtsp_client
CSRCS = $(wildcard *.c)
CXXSRCS = $(wildcard *.cpp)
OBJS = $(CSRCS:.c=.o)
OBJS += $(CXXSRCS:.cpp=.o)
CFLAGS += -W
##########################################################################
all: $(PROGS)
install: all
$(PROGS): $(OBJS)
$(CXX) $^ -o $@
clean:
rm -f $(PROGS) $(OBJS) *~
Per non sapere ne' leggere ne' scrivere vedo che ci sono dei riferimenti a delle directory che dovrei avere ma non ho (tipo tools/build/...).
Secondo voi sono io che dimentico qualcosa o mi manca qualche informazione che dovrebbero darmi ?
Grazie.
Stefano
Ultima modifica di stefanoelle il mercoledì 12 marzo 2008, 19:07, modificato 1 volta in totale.
- steff
- Moderatore Globale

- Messaggi: 40358
- Iscrizione: domenica 18 febbraio 2007, 19:48
- Desktop: LXQt+labwc
- Distribuzione: Arch; Debian; Ubuntu Server
- Sesso: Maschile
- Località: Toscana
- Contatti:
Re: La mia prima compilazione
Cerca in synaptic/adept il metapacchetto build-essentials e installalo.
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
-
stefanoelle
- Prode Principiante
- Messaggi: 44
- Iscrizione: lunedì 29 ottobre 2007, 15:51
Re: La mia prima compilazione
Ho installato build-essential versione 11.3ubuntu1, ma non cambia nulla. Quando do il comando make ottengo lo stesso errore.
- steff
- Moderatore Globale

- Messaggi: 40358
- Iscrizione: domenica 18 febbraio 2007, 19:48
- Desktop: LXQt+labwc
- Distribuzione: Arch; Debian; Ubuntu Server
- Sesso: Maschile
- Località: Toscana
- Contatti:
Re: La mia prima compilazione
Ci sta che il problema è lo makefile, potresti provare a compilare qualcosa per prova senza installare, tipo i driver di alsa http://www.alsa-project.org/main/index.php/Main_Page.
Non è che trovi questo programma in synaptic o precompilato (.deb) da altri fonti?
Non è che trovi questo programma in synaptic o precompilato (.deb) da altri fonti?
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
- mous16
- Imperturbabile Insigne

- Messaggi: 3940
- Iscrizione: mercoledì 25 ottobre 2006, 15:51
- Sesso: Maschile
Re: La mia prima compilazione
l'hai configurato il programma? per molti c'è bisogno di lanciare unprima di poterli compilare, ma non per tutti
Codice: Seleziona tutto
./configure-
gaspa
- Scoppiettante Seguace

- Messaggi: 754
- Iscrizione: lunedì 5 dicembre 2005, 13:12
- Località: Castenaso
Re: La mia prima compilazione
Mi pare evidente che non e` definita questa variabile:
AXIS_TOP_DIR
e di solito le cose non si scrivono in questo modo:
$(AXIS_TOP_DIR)/tools/build/Rules.axis
ma senza slash, cosi' funziona almeno di default nella directory dove sono i sorgenti...
$(AXIS_TOP_DIR)tools/build/Rules.axis
Comunque, dagli in pasto quella variabile, e vedrai che andra' avanti (almeno alla riga successiva (rotfl) )
AXIS_TOP_DIR
e di solito le cose non si scrivono in questo modo:
$(AXIS_TOP_DIR)/tools/build/Rules.axis
ma senza slash, cosi' funziona almeno di default nella directory dove sono i sorgenti...
$(AXIS_TOP_DIR)tools/build/Rules.axis
Comunque, dagli in pasto quella variabile, e vedrai che andra' avanti (almeno alla riga successiva (rotfl) )
--
-gaspa-
-gaspa-
-
stefanoelle
- Prode Principiante
- Messaggi: 44
- Iscrizione: lunedì 29 ottobre 2007, 15:51
[Risolto] Re: La mia prima compilazione
Ci ho messo una giornata ma ci sono riuscito.
Evidentemente, come già avevate scritto, il problema era la definizione delle variabili d'ambiente che opportunamente settate lanciando lo script setenv sono state definite e quindi il compilatore ha svolto la sua funzione.
Poi, visto che c'ero, ho compilato anche il programma mpeg4ip (che in synapic non si trova) e questo mi ha creato non pochi problemi: una riga di codice chiamava la funzione XMoveWindow che non esiste. Può essere che sia definita solo in alcune distribuzioni di Linux ?
L'ultima domanda: il file compilato si chiama rtsp_client. Perchè per eseguirlo devo scrivere ./rtsp_client mentre se scrivo rtsp_client mi dà "command not found" ?
Grazie a tutti per l'aiuto.
Evidentemente, come già avevate scritto, il problema era la definizione delle variabili d'ambiente che opportunamente settate lanciando lo script setenv sono state definite e quindi il compilatore ha svolto la sua funzione.
Poi, visto che c'ero, ho compilato anche il programma mpeg4ip (che in synapic non si trova) e questo mi ha creato non pochi problemi: una riga di codice chiamava la funzione XMoveWindow che non esiste. Può essere che sia definita solo in alcune distribuzioni di Linux ?
L'ultima domanda: il file compilato si chiama rtsp_client. Perchè per eseguirlo devo scrivere ./rtsp_client mentre se scrivo rtsp_client mi dà "command not found" ?
Grazie a tutti per l'aiuto.
- steff
- Moderatore Globale

- Messaggi: 40358
- Iscrizione: domenica 18 febbraio 2007, 19:48
- Desktop: LXQt+labwc
- Distribuzione: Arch; Debian; Ubuntu Server
- Sesso: Maschile
- Località: Toscana
- Contatti:
Re: [Risolto] La mia prima compilazione
E' normale, per far capire alla shell che è uno script (non un comando) devi usare ./
Se vuoi usare un nome devi creare una cartella/bin nella home e salvarlo lì dentro (con nome che vuoi, basta che non è già presente), la shell riconosce tutti i comandi nelle cartelle /bin /usr/bin /usr/local/bin e appunto anche ~/bin
Se vuoi usare un nome devi creare una cartella/bin nella home e salvarlo lì dentro (con nome che vuoi, basta che non è già presente), la shell riconosce tutti i comandi nelle cartelle /bin /usr/bin /usr/local/bin e appunto anche ~/bin
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
-
gaspa
- Scoppiettante Seguace

- Messaggi: 754
- Iscrizione: lunedì 5 dicembre 2005, 13:12
- Località: Castenaso
Re: [Risolto] La mia prima compilazione
steff ha scritto: E' normale, per far capire alla shell che è uno script (non un comando) devi usare ./
Ma no!!!
"./" sta soltanto a significare "Questa directory"... e' normale che le cose eseguibili nei sistemi unix stiano soltanto in certe directory, e quindi di default "." (cioe', la 'directory corrente') non e' considerata....
La differenza tra script e comando non c'entra nulla.
In primo 'comando' e' piuttosto vago, ma immagino che stia intendendo "un programma binario".
E soprattutto _NON_ e' la shell che si occupa di decidere tra script e eseguibile binario
Anche questo e' errato: la shell guarda in tutte le directory elencate nella variabile d'ambiente "PATH".steff ha scritto: Se vuoi usare un nome devi creare una cartella/bin nella home e salvarlo lì dentro (con nome che vuoi, basta che non è già presente), la shell riconosce tutti i comandi nelle cartelle /bin /usr/bin /usr/local/bin e appunto anche ~/bin
Anche se la directory si chiama "pippo", ma e' contenuta in PATH, allora potrai eseguire cose li' dentro.
Ultima modifica di gaspa il giovedì 13 marzo 2008, 10:55, modificato 1 volta in totale.
--
-gaspa-
-gaspa-
- steff
- Moderatore Globale

- Messaggi: 40358
- Iscrizione: domenica 18 febbraio 2007, 19:48
- Desktop: LXQt+labwc
- Distribuzione: Arch; Debian; Ubuntu Server
- Sesso: Maschile
- Località: Toscana
- Contatti:
Re: [Risolto] La mia prima compilazione
Grazie per le precisioni - ho imparato tutto con try & error e non si finisce mai, ecco 
Hai fatto un backup oggi? Ieri?? Quando???
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
La Documentazione da consultare e la FAQ sul uso del forum
Sistemi: LXQt - semplice, modulare e configurabile + *ubuntu in Vbox
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti