LINUX.ORG.RU

Как определить препроцессорную string-константу для gcc в bash-скрипте?


0

0

Т.е. мне хочется в программе иметь препроцессорную константу
MYVERSION="1.01beta"
Если я в скрипте, который собирает мое хозяйство и которому я вызываю так:

./build 1.01beta

пишу

gcc -D "MYVERSION=\"$1\"" myprog.c

то ничего не получается :(
gcc говорит
myprog.c:xx:yy: missing terminating ' character

где yy - строки 

yy: #ifndef MYVERSION
    #error The MYVERSION macros must contain proper version.
    #endif

Как же правильно?



anonymous

Правильно так:

test.c : 
--------

#include <stdio.h>
#ifndef MYVERSION
#error The MYVERSION macros must contain proper version.
#endif

int main()
{ puts(MYVERSION); return 0; }

build:
------
gcc -DMYVERSION=\"$1\" test.c


#./build 1.01beta
#./a.out
1.01beta

abbr
()

Спасибо!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.