Compilazione&Script passaggio di variabili
Salve,
vorrei risolvere due questioni che mi son ripromesso da parecchio tempo di vedere.
come modifico la scelta del compilatore di definire o meno EX?
finora mi sono arragiato con es. scrivendo un codice e modificando manualmente il codice con un #undef EX, cosa non molto comoda.
esiste un:
con i makefile son quasi certo sia una cosa naturale da fare, ma nell'esempio sopra come si fa?
[/*:m:1we5k7rt]
[*:1we5k7rt]dato uno shell script:
pluto.sh
come modifico da linea di comando la variabile VAR?[/*:m:1we5k7rt][/list:u:1we5k7rt]
Ringrazio
vorrei risolvere due questioni che mi son ripromesso da parecchio tempo di vedere.
- [*:1we5k7rt]Dato un codice C/C++, definto come:
pippo.cpp
#define EX #ifdef EX ... #else ... #endif
come modifico la scelta del compilatore di definire o meno EX?
finora mi sono arragiato con es. scrivendo un codice e modificando manualmente il codice con un #undef EX, cosa non molto comoda.
esiste un:
gcc EX=define pippo.cpp
con i makefile son quasi certo sia una cosa naturale da fare, ma nell'esempio sopra come si fa?
[/*:m:1we5k7rt]
[*:1we5k7rt]dato uno shell script:
pluto.sh
#!/bin/bash VAR=1 ./app ${VAR}
come modifico da linea di comando la variabile VAR?[/*:m:1we5k7rt][/list:u:1we5k7rt]
Ringrazio
Risposte
Le opzioni da linea di comando vanno gestite direttamente nel codice analizzando gli argomenti passati da linea di comando. Il processore può essere usato solo per opzioni a tempo di compilazione (quindi passando argomenti a gcc o altro compilatore).
"apatriarca":
(quindi passando argomenti a gcc o altro compilatore).
certo, ma la mia domanda consta proprio su questo: quale e' la giusta sintassi per fare una compilazione condizionata da linea di comando?
Gestire le opzioni da linea di comando è abbastanza tedioso e macchinoso e non è per niente automatico in C/C++. Per fortuna esistono librerie per semplificare questo lavoro (soprattutto in ambiente unix dove immagino tu stia lavorando). Dai infatti un'occhiata qua. Queste funzioni sono abbastanza portabili per cui se non le trovi sul tuo sistema puoi sempre "rubarle" da qualche distribuzione opensource (qualche *BSD per esempio) senza grossi problemi. Oppure implementarle da te.
"hamming_burst":
- Dato un codice C/C++, definto come:
pippo.cpp
#define EX #ifdef EX ... #else ... #endif
come modifico la scelta del compilatore di definire o meno EX?
finora mi sono arragiato con es. scrivendo un codice e modificando manualmente il codice con un #undef EX, cosa non molto comoda.
esiste un:
gcc EX=define pippo.cpp
con i makefile son quasi certo sia una cosa naturale da fare, ma nell'esempio sopra come si fa?
Hai quasi azzeccato.
gcc -DEX main.c gcc -DEX=7 main.c # Per dare un valore esplicito alla macro gcc -DSUCC(x)=(x+1) main.c gcc -DMACRO=VALUE
In realtà non credo sia definito dallo standard come passare macro al compilatore, un compilatore potrebbe usare una sintassi diversa, ma tutti quelli che conosco usano l'opzione "-D".
tutto perfetto, grazie mille a tutti!!
