Tengo un fragmento de código que compila sin problemas con x86 gcc 4.4.1 pero falla con blackfin gcc 4.1.2 con muchos errores "esperado de identificación no calificada antes de la constante numérica". Veo que hay algunos nombres de variables que chocan con algunas macros predefinidas. ¿Es posible ver macros definidas en cierta línea de un archivo cpp?¿Puedo ver las macros definidas durante la compilación de un código C?
Respuesta
gcc -dM -E myfile.cpp
El interruptor
-dM
dice GCC para volcar todas las macros definidas en el archivo dado (que incluirá una lista de macros necesarias para ser definido por el estándar del lenguaje, así como cualquier macro adicionales GCC se autodefine)El interruptor
-E
le dice a GCC que no continúe compilando después de que haya preprocesado el archivo.
Para ver una lista de macros definidas en una determinada línea de un archivo CPP, puede ser más fácil de filtrar primera a cabo cualquiera de las macros predefinidas (macros definidos por el compilador). En BASH, se podría hacer:
LINE=40
FILE=myfile.cpp
HEADER=myfile.h
diff <(grep -h '#include[[:space:]]*<.*>' ${FILE} ${HEADER} | gcc -dM -x c++ -E -) <(cat ${FILE} | head -n ${LINE} | gcc -x c++ -dM -E -)
Esto debería filtrar las macros definidas por las cabeceras de sistema estándar o marcos. La parte adicional, -x c++
, le dice a GCC que interprete la entrada como fuente C++ [que requiere preprocesamiento], esto se debe a que no podrá determinarlo en función de la extensión del nombre de archivo (el código fuente se entrega a GCC mediante stdin).
- 1. Borrar todas las macros vim actualmente definidas
- 2. C++ errores durante la compilación
- 3. Compilación de código Lisp con macros de lectura
- 4. ¿Cómo puedo suprimir las advertencias (en toda la base de código) durante la compilación javadoc?
- 5. Ver código ampliado del compilador - C++
- 6. lista de macros del preprocesador definidas por el compilador
- 7. sgen.exe falla durante la compilación
- 8. ¿Cómo puedo ver el árbol de análisis sintáctico, el código intermedio, el código de optimización y el código de ensamblado durante la compilación?
- 9. CruiseControl.net - Cómo verificar el código durante la compilación
- 10. C++ macros de tiempo de compilación para detectar ventanas os
- 11. SBT: ¿ver el resumen del archivo de clase durante la compilación?
- 12. Wsimport falla durante la compilación de Maven
- 13. ¿Puedo obtener el preprocesador C++ para enviar el resultado durante la compilación?
- 14. ¿Cuándo apareció la idea de las macros (transformación de código definida por el usuario)?
- 15. ¿Cómo evito la colisión de nombres con las macros definidas en los archivos de encabezado de Windows?
- 16. buscando analizador de código C++ para ver todas las firmas
- 17. Sobre la dependencia de las macros
- 18. ¿Cómo escribir el programa durante la compilación?
- 19. Limpiar código C/C++ revela problemas con macros variadas
- 20. C++: Obtener el código de error c3859 durante la compilación en una mezcla de C++/CLI y C++
- 21. ¿Cómo hacer que el preprocesador C ejecute el código durante la compilación?
- 22. ¿Cómo obtengo una constante numérica en tiempo de compilación durante la compilación en Visual C++?
- 23. ¿Dónde puedo ver el código utilizado en las bibliotecas estándar de C++?
- 24. Verificar errores de maquinilla de afeitar durante la compilación
- 25. iPhone libxml2 no encontrado durante la compilación
- 26. ¿Puedo ver un BufferedReader?
- 27. Cadenas de concatenación en macros - C++
- 28. Durante la expansión de macro C, ¿hay algún caso especial para las macros que se expandirían a "/ *"?
- 29. ¿Cómo puedo definir las macros de preprocesador en Xcode 4?
- 30. Edición C# durante la depuración