Crea il file di intestazione a livello di programmazione

0

Qual è il modo migliore per creare a livello di codice un file di intestazione per un altro progetto?

Ecco il caso d'uso specifico: un programma impronta il dispositivo per informazioni discrete come il numero di versione, la stringa di identificazione, ecc. e quindi crea un file di intestazione che popola le strutture statiche / le costanti del programma. Questo file di intestazione viene quindi utilizzato da più progetti per definire un tipo di tale classe.

Ho pensato di leggere la scrittura in un file xml o flat, il che significa che i progetti che consumano devono conoscere la struttura delle librerie plug-in e leggerle.

    
posta Sorcerer13 29.04.2011 - 22:40
fonte

1 risposta

1

Se stai costruendo su * NIX (Unix, Linux o OSX), un approccio comune è avere una regola make che converta un file .h.in in .h usando sed (o perl). L'implementazione potrebbe variare su Windows, ma quello a cui dovresti mirare è

project.h.in:

#define VERSION __VERSION__
#define COPYRIGHT __COPYRIGHT__
#define SOMETHING_ELSE __SOMETHING_ELSE__

Il tuo strumento di impronte digitali (o un wrapper attorno ad esso) quindi sostituisce semplicemente il testo, quindi ti ritroverai con

#define VERSION 2.3.4
#define COPYRIGHT "(C) 2011 Stack Overflow"
#define SOMETHING_ELSE "A bucket of fish"

Potresti usare Ant per fare rimpiazzi (sebbene Ant non sia realmente lo strumento giusto per la programmazione in C)

A seconda di cosa si sta facendo esattamente il fingerprinting, automake / autoconf potrebbe valere la pena di investigare - su Windows potresti aver bisogno di eseguirli sotto MinGW o cygwin .

L'uso di un modello come questo significa che puoi lasciare qualsiasi commento di intestazione, definizioni di macro, ecc. nel modello di intestazione.

    
risposta data 29.04.2011 - 23:55
fonte

Leggi altre domande sui tag