Newsgroup: it.comp.os.linux.iniziare
Titolo: Compilare con il compilatore non di default

Ciao, leggendo un po' qua e la' credo di aver capito che, se la
distribuzione possiede diversi compilatori (gcc4, gcc3, ...) posso scegliere
quale utilizzare per la compilazione, giusto?
Il mio problema e' che non riesco a compilare un programma (NS, si veda
eventualmente il post su icol.development del 18.06, ore 20:17), forse
occorre compilarlo con una versione precedente di gcc, forse invece non
c'entra niente ed e' un problema di tcl. Per il momento, come dicevo anche
in quel post, non ho a disposizione il messaggio di errore, comunque era un
problema di variabili nel codice; premetto che gli stessi sorgenti li ho
compilati con fc3 e tutto e' andato bene.
Spero di essere stato sufficientemente chiaro, ciao a tutti, grazie.
--
------------------------------------------------
Salvatore La Bua - 
www.shogoki.it
------------------------------------------------
Computer Science Graduate Student
University of Palermo  -  [Italy]
------------------------------------------------

 stessi sorgenti li ho compilati con fc3 e tutto e' andato bene.
non ho visto il codice, pochi software risentono del cambiamento di
compilatore, tra cui il più notevole è il kernel di linux.
come al solito, la soluzione più semplice è quella più probabile.
è facile che sia un problema del codice e, nella maggior parte dei casi,
è così.
ciao!
gl :)

 
Beh, non proprio.
Non e' detto che un codice che compila sotto gcc 3.x poi compili su gcc 2.x
Tutto e' dato dal fatto che gcc 3.x e' molto meno rigoroso del 2.x, per 
esempio il 3.x accetta dichiarazioni di variabili ovunque, mentre il 2.x 
si incavola a morte e non ti compila.
Ciao
	MaX

 Non e' detto che un codice che compila sotto gcc 3.x poi compili su gcc 2.x
se *fosse* codice in linguaggio standard, *compilerebbe* ovunque.
ciao
gl :)

 gl :)
Ciao e grazie ancora :)


 scegliere la versione di gcc da usare? Devo editare qualche file?
tipicamente basterebbe impostare CFLAGS per passare le opzioni al
compilatore, ad esempio:
$ CFLAGS="-O2" make
tuttavia, l'opzione "-V" deve essere la prima della linea di comando di
gcc. quindi molto probabilmente dovrai modificare opportunamente il
Makefile impostando "-V <versione>"
su debian esistono degli eseguibili 'gcc-3.3', 'gcc-3.4', 'gcc-4.0' e un
link 'gcc' alla versione predefinita. in questo caso basta cambiare il
link per selezionare il compilatore standard per tutto il sistema.
oltre a gcc bisogna fare il link anche degli altri programmi (cpp, g++, ...)
ciao
gl :)

 gl :)
Ciao, grazie.


[SLB++] wrote:
Questo e' l'errore che riporta, credo e spero serva a qualcosa...
xcp/xcpq.o(.text+0x48): In function `XCPQueue::init_vars()':
xcpq.cc: undefined reference to `XCPQueue::BWIDTH'
xcp/xcpq.o(.text+0x4e):xcpq.cc: undefined reference to `XCPQueue::BWIDTH'
xcp/xcpq.o(.text+0x904): In function `XCPQueue::do_on_packet_arrival(Packe
xcpq.cc: undefined reference to `XCPQueue::BWIDTH'
xcp/xcpq.o(.text+0xa56):xcpq.cc: undefined reference to
`XCPQueue::XCP_MAXVAL'
xcp/xcpq.o(.text+0xaaf):xcpq.cc: undefined reference to
`XCPQueue::XCP_MAXVAL'
xcp/xcpq.o(.text+0xad5):xcpq.cc: undefined reference to
`XCPQueue::XCP_MAXVAL'
xcp/xcpq.o(.text+0x130c): In function `XCPQueue::Te_timeout()':
xcpq.cc: undefined reference to `XCPQueue::BWIDTH'
xcp/xcpq.o(.text+0x13a1):xcpq.cc: undefined reference to `XCPQueue::ALPHA_
xcp/xcpq.o(.text+0x13b2):xcpq.cc: undefined reference to `XCPQueue::BETA_'
xcp/xcpq.o(.text+0x13ca):xcpq.cc: undefined reference to `XCPQueue::GAMMA_
xcp/xcpq.o(.text+0x1723):xcpq.cc: undefined reference to `XCPQueue::BWIDTH
xcp/xcpq.o(.text+0x1729):xcpq.cc: undefined reference to `XCPQueue::BWIDTH
xcp/xcpq.o(.text+0x1740):xcpq.cc: undefined reference to
`XCPQueue::XCP_MIRVAL'
xcp/xcpq.o(.text+0x1746):xcpq.cc: undefined reference to
`XCPQueue::XCP_MIRVAL'
xcp/xcp.o(.gnu.linkonce.t._ZN8XCPQueue12spread_bytesEb[XCPQueue::spread_byol
)]+0x1f): In function `XCPQueue::spread_bytes(bool)':
xcp.cc: undefined reference to `XCPQueue::BWIDTH'
xcp/xcp.o(.gnu.linkonce.t._ZN8XCPQueue12spread_bytesEb[XCPQueue::spread_byol
)]+0x25):xcp.cc: undefined reference to `XCPQueue::BWIDTH'
collect2: ld returned 1 exit status
make: *** [ns] Error 1
Ns make failed!


 collect2: ld returned 1 exit status
non e' che non trova qualche libreria dinamica?
-- 
10/6/2005 | E' l' alba, finalmente!!!

 non e' che non trova qualche libreria dinamica?
Grazie per l'interessamento, ho mandato un messaggio sulla mailing list del
programma ed ho risolto con una patch ai sorgenti per adeguarli al nuovo
gcc4.0.
Ciao :)


 quale utilizzare per la compilazione, giusto?
Probabilmente hai due comandi, tipo gcc-3.4 e gcc-4.0 e gcc e' un link
a uno dei due. Per scegliere il compilatore da usare solitamente basta
impostare la variabile CC o CXX per il compilatore C++
Ad esempio, per usare il gcc-3.4 dai:
CC=gcc-3.4 CXX=g++-3.4 make
.a.
-- 
Il mattino ha l'oro in bocca. Il MATTino ha l'OrO In bOcca.
i lma tt ino ha l'o roin bocc a.ilmattinohal'oroinbocca. il ma tt in
oh al' or oi nb oc ca. il matti noha l'oroinbocca. IL MATtiNO Ha l'ORO
InBOCCa. I l m a t t i n o  h a l' o r o i n b o c c a . ilmattinohal'oroin
BoCcA. iLmAtTiNoHaL'oRoInBoCcA.

 .a.
Ciao :)


 sbagliarmi pero'.
La politica per i compilatori di redhat mi ha sempre lasciato un po'
interdetto...
