View previous topic :: View next topic |
Author |
Message |
nomadsoul Apprentice
Joined: 14 Mar 2004 Posts: 172
|
Posted: Tue Mar 16, 2004 6:46 pm Post subject: Come funzionano le CFLAGS?? [FAQ] |
|
|
-Premetto che ho gia cercato su google e sul forum-
volevo solo sapere che ruolo hanno le impostazioni delle CFLAGS.
fin'ora sn riuscito a capire che -march=processore
ottimizza il sistema per il processore che hai
quello che non capisco è a cosa servono gli altri tag tipo
-03 -pipe etc
di conseguenza non so come ottimizzare al meglio il tutto
grazie a tutti dell'aiuto |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31288 Location: here
|
Posted: Tue Mar 16, 2004 7:03 pm Post subject: |
|
|
Per me basta che metti
Code: | -march=processore -O2 -pipe -fomit-frame-pointer |
O -On al posto di -O2 se hai un processore un po lento e poca ram. _________________ Questions are guaranteed in life; Answers aren't.
Last edited by fedeliallalinea on Tue Mar 16, 2004 7:04 pm; edited 1 time in total |
|
Back to top |
|
|
MyZelF Bodhisattva
Joined: 25 Feb 2003 Posts: 2010 Location: Venice, Italy
|
Posted: Tue Mar 16, 2004 7:03 pm Post subject: |
|
|
Prova con un
_________________ "Larry the Cow was a bit frustrated at the current state of Linux Distributions..." |
|
Back to top |
|
|
-YoShi- l33t
Joined: 26 Nov 2003 Posts: 684 Location: Besana Brianza - ItaLy -
|
Posted: Tue Mar 16, 2004 7:19 pm Post subject: |
|
|
Oppure se proprio non vuoi andare di $ man dai un occhio a questo (a mio avviso) interessante post
LinK _________________ Io lo vedo tutti i giorni, un Re per vederlo deve uscire dal suo regno, e il Papa lo vede quando si spoglia. Chi è? |
|
Back to top |
|
|
nomadsoul Apprentice
Joined: 14 Mar 2004 Posts: 172
|
Posted: Tue Mar 16, 2004 7:19 pm Post subject: |
|
|
sticaxxil casino è che gcc lo devo ancora creare... prima di fare il bootstrap volevo settare i flags al meglio
edit:
ho capito.. ho toccato un argomento delicatissssimo |
|
Back to top |
|
|
hardskinone Guru
Joined: 02 Jan 2004 Posts: 460
|
Posted: Tue Mar 16, 2004 8:10 pm Post subject: |
|
|
le CFLAG puoi sempre cambiarle in un secondo momento pena pero' il dover ricompilare tutto con le nuove opzioni. |
|
Back to top |
|
|
nomadsoul Apprentice
Joined: 14 Mar 2004 Posts: 172
|
Posted: Tue Mar 16, 2004 8:20 pm Post subject: |
|
|
ecco appunto... |
|
Back to top |
|
|
blackfede Apprentice
Joined: 29 Dec 2003 Posts: 178
|
Posted: Tue Mar 16, 2004 8:51 pm Post subject: |
|
|
O meglio, le puoi cambiare quando ti pare senza dover ricompilare nulla, però se le cambi è perchè vuoi un'ottimizzazione più spinta, e ha poco senso usare dei programmi compilati con le vecchie flags, insieme ad altri compilati con le nuove...il tutto IHMO! |
|
Back to top |
|
|
maiosyet Apprentice
Joined: 14 Oct 2003 Posts: 188 Location: /Italy/Milan
|
Posted: Tue Mar 16, 2004 8:59 pm Post subject: |
|
|
Volevo aprire una discussione simile ma non ne avevo mai il tempo, mi intrufolo in questa con un paio di domande che da tanto mi faccio:
C'è un elenco delle cflags con relative spiegazioni? Sarebbe comodo. Ad esempio due giorni fa mi sono compilato kde senza la cflag per kde e non è servito a una pippa
Del tipo:
-march pentium4 = ottimizzazione per processori pentium4 ecc.
E se non c'è potremmo sempre farne uno (ma mi sembra strano che non ci sia) |
|
Back to top |
|
|
blackfede Apprentice
Joined: 29 Dec 2003 Posts: 178
|
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31288 Location: here
|
Posted: Tue Mar 16, 2004 9:07 pm Post subject: |
|
|
Attento che queste sono le USE FLAGS e non le CFLAGS. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
blackfede Apprentice
Joined: 29 Dec 2003 Posts: 178
|
Posted: Tue Mar 16, 2004 9:11 pm Post subject: |
|
|
ARRRGGG
Ma cosa mi sono fumato stasera????
Chiedo venia...
Se vuoi un'elenco delle CFLAGS un bel
man gcc e man g++, risolve tutto!
Li trovera l'elenco completo. |
|
Back to top |
|
|
maiosyet Apprentice
Joined: 14 Oct 2003 Posts: 188 Location: /Italy/Milan
|
Posted: Tue Mar 16, 2004 9:15 pm Post subject: |
|
|
Ah ops...ma allora le CFLAG che cosa sono?
Tutta la documentazione del sito parla di USE flag, non di CFLAG |
|
Back to top |
|
|
blackfede Apprentice
Joined: 29 Dec 2003 Posts: 178
|
Posted: Tue Mar 16, 2004 9:20 pm Post subject: |
|
|
Le CFLAGS sono le flag di compilazione, praticamente sono le opzioni che puoi passare al compilatore per fargli ottimizzare il codice, e fargli creare quindi eseguibili più performanti sulla tua macchina.
Comunque se cerchi in giro sul forum trovi veramente un sacco di materiale che ti può aiutare a capire meglio. Se ti interessa, una discussione interessante (ma in inglese) è il topic "CFLAGS Central", sono circa 20-25 pagine di disquisizioni sulle CFLAGS migliori per varie architetture. |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31288 Location: here
|
Posted: Tue Mar 16, 2004 9:20 pm Post subject: |
|
|
maiosyet wrote: | Ah ops...ma allora le CFLAG che cosa sono? |
Le CFLAGS sono le ottimizzazioni per il compilatore (creera' dei binari ottimizzati). _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
maiosyet Apprentice
Joined: 14 Oct 2003 Posts: 188 Location: /Italy/Milan
|
Posted: Tue Mar 16, 2004 9:24 pm Post subject: |
|
|
Dalla documentazione:
CFLAGS Le opzioni per il gcc quando compila programmi in C (file *.c)
E occhei...ma quindi un elenco di cfleg non c'è?
USE Questa vi permette di definire componenti opzionali, se esistono, che possono essere inclusi durante la compilazione di altri programmi. Per esempio se avete gnome incluso nella variabile USE, quando compilate xchat verrà incluso il supporto GNOME. Anche tutte le dipendenze sono USE-sensibili.
Ma quindi tantovale abilitarle tutte le USE flag? |
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 31288 Location: here
|
Posted: Tue Mar 16, 2004 9:28 pm Post subject: |
|
|
maiosyet wrote: | E occhei...ma quindi un elenco di cfleg non c'è? |
si
maiosyet wrote: | Ma quindi tantovale abilitarle tutte le USE flag? |
No solo quelle che vuoi che ci siano. Per esempio io voglio il supporto kde ma non gnome,.. _________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
Danilo l33t
Joined: 05 Feb 2004 Posts: 747 Location: Italy
|
Posted: Tue Mar 16, 2004 9:36 pm Post subject: |
|
|
maiosyet wrote: | Ah ops...ma allora le CFLAG che cosa sono?
Tutta la documentazione del sito parla di USE flag, non di CFLAG |
Allora le CFLAGsono le flag di ottimizzazione del compilatore. Questo concetto lo trovi in qualunque file Makefile, in qualunque piattaforma/sistema operativo che usa c++.
Esse vengono passate direttamente al compilatore.
Con essi provvedi (te ne cito solo qualcuna):
- ottimizzazioni varie (es.: attivare le direttiva inline) : -O, -O1, -O2,...
- inserire o meno le informazioni di debug -g, -g1, ...-gall
- ecc ecc
Da notare che quando scrivi march=pentium4 gli stai dicendo di attivare TUTTE le ottimizzazioni consigliate x pentium 4.
La lista delle CFLAG la trovi ANCHE con un man g++
Le USE FLAG sono delle flag specifiche di Gentoo (non so se altre distribuzioni usano un concetto analogo) e con esse decidi per la specifica compilazione quale supporto attivare (o per tutte le future compilazioni se le inserisci in /etc/make.conf).
Es: Se tu usi solo kde tu potrai mettere in /etc/make.conf:
In questo modo quando compili qualcosa dici al compilatore di non attivare il supporto per gnome e gtk. E' ovvio che se ti compili gnucash lui comunque ti compila qualcosa di gtk perche' e' essenziale.
In questo modo risparmi un botto di librerie da compilare.
Emerge e tutto quello che c'e' dietro provvede a smazzare le use e a settare correttamente i vari configure - che produrranno i vari makefile - che saranno dati in pasto al compilatore.
Ciao. |
|
Back to top |
|
|
maiosyet Apprentice
Joined: 14 Oct 2003 Posts: 188 Location: /Italy/Milan
|
Posted: Tue Mar 16, 2004 9:38 pm Post subject: |
|
|
Grazie mille, ma anche se lo scrivevi una sola volta capivo lostesso
editShev: la battuta è riferita al fatto che il post appariva ripetuto per errore quattro volte. Ora tre copie sono state eliminate, avverto per dovere di cronaca e permettere la comprensione della battuta |
|
Back to top |
|
|
|