2011-12-26 2 views
4

Не могли бы вы сказать мне, пожалуйста, как я могу сделать следующее:Gfortran директивы препроцессора для различных операционных систем

#if __unix__ 
#define path_sep='/' 
#elif __windows__ 
#define path_sep='\' 
#else 
#error "path_sep not defined." 
#endif 

используя gfortran компилятор.

+2

Руководство пользователя gfortran содержит инструкции по использованию препроцессора. Есть ли что-нибудь о них, что вам непонятно? – eriktous

ответ

9

Это может быть сделано в сочетании с условной компиляцией и с использованием опции «D» в командной строке. Вот несколько примеров кода:

program test_Dopt 
character (len=1) :: pathsep 
pathsep = "?" 
#ifdef WOS 
    pathsep = "\" 
#endif 
#ifdef UOS 
    pathsep = "/" 
#endif 

write (*, '("pathsep is >", A1, "<")') pathsep 

end program test_Dopt 

Название программы с F90 типа файла, чтобы вызвать gfortran для запуска препроцессора или использовать -cpp на линии компиляции. Затем передайте параметры препрепроцессору, включив их после D в строку компиляции, например gfortran -DWOS. (Это более общий, чем gfortran - большинство компиляторов Fortran обрабатывают директивы предварительного процессора C-стиля.) Затем вы можете определить ОС за пределами Fortran и передать информацию программе Fortran.

Вы можете скомпилировать свой код с помощью filetype F90 или -cpp.

+0

'__unix__' и' _WIN32' - это обычные предопределенные флажки препроцессора, используемые для указания, в какой системе вы находитесь в большинстве компиляторов. – Chris

Смежные вопросы