[Risolto] La mia prima compilazione

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
stefanoelle
Prode Principiante
Messaggi: 44
Iscrizione: lunedì 29 ottobre 2007, 15:51

[Risolto] La mia prima compilazione

Messaggio da stefanoelle »

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
Ultima modifica di stefanoelle il mercoledì 12 marzo 2008, 19:07, modificato 1 volta in totale.
Avatar utente
steff
Moderatore Globale
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

Messaggio da steff »

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
stefanoelle
Prode Principiante
Messaggi: 44
Iscrizione: lunedì 29 ottobre 2007, 15:51

Re: La mia prima compilazione

Messaggio da stefanoelle »

Ho installato build-essential versione 11.3ubuntu1, ma non cambia nulla. Quando do il comando make ottengo lo stesso errore.
Avatar utente
steff
Moderatore Globale
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

Messaggio da steff »

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?
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
Avatar utente
mous16
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3940
Iscrizione: mercoledì 25 ottobre 2006, 15:51
Sesso: Maschile

Re: La mia prima compilazione

Messaggio da mous16 »

l'hai configurato il programma? per molti c'è bisogno di lanciare un

Codice: Seleziona tutto

./configure
prima di poterli compilare, ma non per tutti
Pagine personali: Forum Ubuntu-it - Wiki Ubuntu-it - Launchpad
Solo/mous16
gaspa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 754
Iscrizione: lunedì 5 dicembre 2005, 13:12
Località: Castenaso

Re: La mia prima compilazione

Messaggio da gaspa »

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) )
--
-gaspa-
stefanoelle
Prode Principiante
Messaggi: 44
Iscrizione: lunedì 29 ottobre 2007, 15:51

[Risolto] Re: La mia prima compilazione

Messaggio da stefanoelle »

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.
Avatar utente
steff
Moderatore Globale
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

Messaggio da steff »

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
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
gaspa
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 754
Iscrizione: lunedì 5 dicembre 2005, 13:12
Località: Castenaso

Re: [Risolto] La mia prima compilazione

Messaggio da gaspa »

steff ha scritto: E' normale, per far capire alla shell che è uno script (non un comando) devi usare ./
:o :o

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
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 questo e' errato: la shell guarda in tutte le directory elencate nella variabile d'ambiente "PATH".
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-
Avatar utente
steff
Moderatore Globale
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

Messaggio da steff »

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
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti