2010-11-28 5 views
1

Possible en double:
C/C++, can you #include a file into a string literal?Comment puis-je inclure un fichier de données au moment de la compilation?

J'ai plusieurs fichiers de données qui seront utilisées en tant que chaînes dans mon programme. Je veux éviter les frais supplémentaires de lecture dans les fichiers lors de l'exécution.

Je pourrais les coder en dur, mais je préfère de loin les conserver dans des fichiers séparés.

Je pourrais les inclure mais alors je devrais les entourer de guillemets et ajouter "\" pour chaque nouvelle ligne (et puisque ces données sont source de GLSL cela gâche la coloration syntaxique).

Des idées?

+0

Dupe ici: http://stackoverflow.com/questions/1246301/c-c-can-you-include-a-file-into-a-string-literal –

+0

à vrai, mais je ne peux pas le supprimer maintenant; j'ai trop de réponses. –

Répondre

3

Créez un script pour convertir les fichiers en code. Avoir ce script exécuté dans le cadre de votre processus de construction. Les fichiers d'origine sont ce que vous vérifiez dans le contrôle de la source et modifier.

+0

Il n'y a aucun moyen de pré-compiler les shaders GLSL simplement parce qu'il n'y a pas de micro-architecture commune dictée par ARB et donc chaque vendeur a ses propres micro-codes. –

+1

@null_radix un script qui les convertit en code C qui "encapsule" les fichiers d'origine. C'est une automatisation de votre idée avec includes, mais cela préserverait les fichiers originaux non modifiés. C'est ce qu'on appelle la "génération de code source". – ruslik

+0

okay je vois! merci @ruslik –

Questions connexes