Как я могу включить файл данных во время компиляции?

Возможный дубликат:
C / C ++, можете ли вы # включить файл в строковый литерал?

У меня есть несколько файлов данных, которые будут использоваться в качестве строк в моей программе. Я хочу избежать дополнительных накладных расходов на чтение файлов во время выполнения.

Я мог бы жестко закодировать их все, но я предпочитаю хранить их в отдельных файлах.

Я мог бы включить их, но тогда мне нужно было бы заключить их в кавычки и добавить «\» для каждой новой строки (и поскольку эти данные являются источником GLSL, это нарушает подсветку синтаксиса).

Любые идеи?


person null_radix    schedule 28.11.2010    source источник
comment
Дупите здесь: stackoverflow.com/questions/1246301/   -  person Stefan Mai    schedule 28.11.2010
comment
верно, но сейчас я не могу его удалить; у меня слишком много ответов.   -  person null_radix    schedule 28.11.2010


Ответы (1)


Сделайте сценарий для преобразования файлов в код. Выполните этот сценарий как часть процесса сборки. Исходные файлы - это то, что вы проверяете в системе контроля версий и редактируете.

person Laurence Gonsalves    schedule 28.11.2010
comment
Невозможно предварительно скомпилировать шейдеры GLSL просто потому, что нет общей микроархитектуры, продиктованной ARB, и, следовательно, у каждого поставщика есть свои собственные микрокоды. - person null_radix; 28.11.2010
comment
@null_radix скрипт, преобразующий их в код C, инкапсулирующий исходные файлы. Это автоматизация вашей идеи с помощью включений, но при этом исходные файлы сохранятся без изменений. Это называется генерацией исходного кода. - person ruslik; 28.11.2010
comment
хорошо, я вижу! спасибо @ruslik - person null_radix; 28.11.2010