¿Existe algún tipo de sintaxis ultrarrápida que compruebe mi código, pero no compila el modo "para g ++/clang? Donde el único objetivo es simplemente comprobar si el código que tengo es código C++ válido?g ++/clang análisis ultrarrápido pero no modo de compilación?
15
A
Respuesta
15
-fsyntax-only para GCC, esto probablemente debería funcionar también para Clang ya que emulan las opciones de línea de comando de GCC. Ya sea que sea significativamente más rápido, tendrás que hacerlo a tiempo.
0
Puede echar un vistazo a gcc-xml (http://www.gccxml.org/HTML/Index.html), que reutiliza la interfaz gcc para generar una descripción xml de la fuente.
Otra opción es usar el frontend de edg (http://www.edg.com/index.php?location=c_frontend), pero no es de código abierto, y está lejos de ser barato.
0
¿Tal vez cppcheck es una opción para usted? No sé exactamente qué resultado quieres. cppcheck no es una verificación de sintaxis pura. Y si cppcheck es rápido enougth.
Cuestiones relacionadas
- 1. C++ g ++ llvm-clang perfil de compilador
- 2. g ++ Error de análisis en ":"
- 3. Compilación en g ++ para gprof
- 4. g ++ funciona, pero no "g ++ -c" y ld
- 5. Usando Clang ++ en Makefile en lugar de G ++
- 6. Clang para el análisis difuso C++
- 7. Modo de compilación: RelWithDebInfo
- 8. Compilación de biblioteca dinámica compartida con g ++
- 9. ¿Qué es g ++ 's -pthread equiv in clang?
- 10. Borrar NULL pero no error de compilación
- 11. boost :: date_time, g ++ - 4.7.0, error de compilación
- 12. error de compilación en g ++ 4.3.4 compilador
- 13. compilación archivo de cabecera error fatal g ++
- 14. clang completo no funciona
- 15. C++ 11 Atomics. ¿Por qué esta compilación, pero no enlace?
- 16. Si uso g ++ como mi compilador, ¿cómo escaneo un archivo C++ con el analizador estático clang?
- 17. Creación de una correlación de modo de inserción, pero no para el modo secundario de autocompletar
- 18. El enlazador Clang no investiga LD_LIBRARY_PATH
- 19. ¿Por qué mi aplicación falla en modo de lanzamiento pero no en modo de depuración?
- 20. Enlazador para Clang?
- 21. C++: fuerza compilación de plantilla completa (MSVC/G ++)
- 22. g ++ 4.7.1 error de compilación: tipos conflictivos para 'strsignal'
- 23. Clang documentación del usuario
- 24. error de compilación: "g ++: error al intentar exec 'cc1plus': execvp: No existe el fichero o directorio"
- 25. modo por lotes citado parámetros de análisis sintáctico
- 26. El comando Simple OpenCV funciona en modo Debug pero no en modo Release
- 27. ghci - compilación ansiosa en modo interactivo?
- 28. Paréntesis desequilibrado con __attribute__ en g ++
- 29. gcc y g ++ símbolo del sistema compilación y vinculación
- 30. CMake clang y C++ 0x
El problema de la velocidad es realmente cuánto tiempo se utiliza en la E/S de origen de lectura, en la verificación de la sintaxis, cuánto tiempo se compila y cuánto tiempo se hace la E/S de salida del objeto. Sospecho que con una fuente suficiente, incluida la lectura de E/S, puede ser una gran parte y verá una ganancia mínima solo en la comprobación de sintaxis. –
@Mark: En mi experiencia, el almacenamiento en caché de la salida compilada con ccache casi siempre tiene sentido. Y no olvide que C++ también puede incluir plantillas que pueden hacer que los tiempos puros de compilación se disparen. –
Tenga en cuenta que en g ++, esto solo analiza el código y no crea instancias, por lo que puede perder muchos errores. clang ++ se detiene después de la creación de instancias, lo que puede llevar un poco más de tiempo, pero es más útil. Además, algunas de las advertencias g ++ se producen durante la fase de optimización del código, por lo que también las extrañarás. –