Pregunta

Con GCC y Gfortran puedo generar una lista de macros preprossorsor definidas por el compilador que usa (editado para reflejar la respuesta de OUAH)

gcc -E -dM - < /dev/null

y

gfortran -cpp -E -dM /dev/null

respectivamente (al menos en Linux).

¿Cómo puedo hacer lo mismo con los compiladores Intel ICC e Ifort? Sé que para si se definen estas macros aquí, pero me gustaría poder generar esta lista yo mismo, ya que las macros exactas en uso y sus valores dependerán de las opciones de compilador utilizadas. También soy consciente del predefinido proyecto.

¿Fue útil?

Solución 2

Con el compilador Intel Fortran, Ifort, se puede usar lo siguiente:

ifort -E -fpp /dev/null -dryrun 2>&1 | grep -e -D | cut -c 5-

Parece que iFort no tiene un equivalente -dM Flag como ICC, GFORTRAN y GCC.

Otros consejos

Use esto con el compilador Intel:

icc -E -dM - < /dev/null

Tenga en cuenta que con gcc, la -E También se requiere la opción si desea usar el -dM opción del preprocesador.

Para gfortran, cuidado con eso gfortran -E -dM - < /dev/null produce el mismo resultado que si hubieras llamado gcc, que probablemente no sea útil. Probablemente quieras algo como esto (fuente):

gfortran -cpp -E -dM empty.f

Que te dará una lista más pequeña de lo que gfortran en realidad predefine. Notará que los resultados probablemente no incluyen nada útil para determinar el sistema operativo. En general, para Fortran, te deja definir aquellos tú mismo. Ver aquí Para detalles adicionales. También podrías probar algo como este, pero soy un poco escéptico de la práctica de esa solución. Además, ese enlace implica que en un momento gfortran definido más de lo que hace ahora.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top