Как я могу сгенерировать макрос препроцессора с помощью GNU gfortran? Я хотел бы передать определение макроса в GNU gfortran, который затем будет использоваться в качестве строки в коде.
Эффективно я хотел бы сделать это:
program test
implicit none
character (len=:), allocatable :: astring
astring = MYMACRO
write (*, *) astring
end program test
а затем постройте с помощью:
gfortran -DMYMACRO=hello test.F90
Я пробовал создавать различные макросы, например:
#define STRINGIFY_(x) #x
#define STRINGIFY(x) STRINGIFY_(x)
...
astring = STRINGIFY(MYMACRO)
но это не работает с препроцессором gfortran.
Я также попытался использовать другой стиль макроса:
#define STRINGIFY(x) "x"
...
astring = STRINGIFY(MYMACRO)
но это просто создает строку, содержащую текст "MYMACRO".
Затем я попытался изменить определение макроса на:
-DMYMACRO=\"hello\"
но это вызвало несвязанные проблемы в процессе сборки.
Спасибо за помощь