Определить операционную систему
Мой код Fortran 90 на компиляторе Intel зависит от операционной системы, в которой он работает, например
if (OS=="win7") then
do X
else if (OS=="linux") then
do y
end if
Как мне сделать это программно?
1 ответ
Решение
Для этой задачи вы можете использовать директивы препроцессора, подробности смотрите здесь и здесь:
_WIN32
для Windows__linux
для Linux__APPLE__
для Mac OSX
Вот пример:
program test
#ifdef _WIN32
print *,'Windows'
#endif
#ifdef __linux
print *,'Linux'
#endif
end program
Убедитесь, что вы включили препроцессор, либо указав -fpp
//fpp
или учитывая файл заглавной F
/F90
в расширении. Вы можете сделать это в центральном месте, определив, например, константу, описывающую ОС. Это позволит избежать этих макросов повсюду.
Обратите внимание, что макрос для Linux не указан gfortran
, Как это все еще определяет _WIN32
в Windows вы можете использовать альтернативно #else
если вы просто рассматриваете Linux и Windows:
program test
#ifdef _WIN32
print *,'Windows'
#else
print *,'Linux'
#endif
end program