Вероятно, следует сделать с параметром командной строки, но, если вы должны сделать это в make-файле, вы можете использовать следующее:
$ cat makefile
qq: myprog.c makefile
gcc -DMYSTRING='"hello"' -o myprog -Wall myprog.c
$ cat myprog.c
#include <stdio.h>
int main(void) {
printf ("[%s]\n", MYSTRING);
return 0;
}
-D
указываетвремя компиляции #define
, которое устанавливает MYSTRING
в "hello"
.
Затем, когда вы используете MYSTRING
в коде, оно превращается в строку.В этом примере кода я просто передаю его на printf
, но вы также можете передать его на fopen
согласно вашему требованию.
Когда вы запускаете этот исполняемый файл, вывод:
[hello]
Это немного отличается от простого жесткого кодирования значения в исходном коде - вам придется перекомпилировать, если вы когда-нибудь захотите изменить строку (вот почему я предложил параметр командной строки в первом абзаце).