LLVM C ++ IDE para Windows

92

¿Hay algún IDE de C / C ++ para Windows, que está integrado con el compilador LLVM (y el analizador Clang C / C ++), al igual que lo hace el Xcode moderno?

Tengo Dev-Cpp (usa GCC desactualizado) y Code :: Blocks (con algunos GCC). Pero GCC me da mensajes de error muy crípticos. Quiero obtener algunos mensajes de error más fáciles de usar desde la interfaz de Clang.

Sí, Clang no se pudo usar con código C ++ complejo, pero el tronco Clang ya puede compilar LLVM. Así que me pregunto si hay alguno de los IDE de LLVM en desarrollo o en versiones beta.

Sí, puedo usar Clang como otro compilador con IDE compatibles con GCC. Pero, ¿hay algún IDE que esté integrado con Clang? Clang tiene un formato de salida diferente, por lo que el IDE debe analizarlo. Clang puede proporcionar análisis IDE de fuentes. Clang tiene una opción de análisis, que debe ser compatible con un IDE. Eche un vistazo, por ejemplo, http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

Y la característica más buscada de Clang es el autocompletado inteligente, por lo que el IDE puede sugerir solo variantes con sintaxis correcta, por ejemplo, enumerar solo campos de esta estructura, clase.

Resultados: (combinado de respuestas):

osgx
fuente
3
Me pregunto si en el futuro, Emacs obtendrá soporte para Clang. Por cierto, hay un modo menor de emacs aquí llvm.org/svn/llvm-project/cfe/trunk/utils/… aunque no lo he probado yo mismo.
ustun
Code :: Blocks funciona con Clang.
James Harper

Respuestas:

59

LLVM es compatible con Eclipse CDT a través del complemento ( llvm4eclipsecdt ). Es el único IDE compatible con Windows que admite LLVM hasta donde yo sé. Soy el autor principal del complemento, por lo que puede hacer cualquier pregunta relacionada con él.

El complemento ofrece la funcionalidad básica para la compilación de Clang y llvm-gcc y es compatible con Linux y Windows (con Cygwin y MiNGW). Las herramientas LLVM como ensamblador, archivador, enlazador y compilador estático (llc) se configuran y se pueden personalizar a través de la interfaz de usuario. El complemento ofrece todos los beneficios que IDE puede ofrecer, como una configuración y una construcción sencillas con una sola acción.

El único inconveniente es que aún no está listo, ya que carece de algunas de las funciones avanzadas que LLVM puede ofrecer, como el análisis de Clang y la finalización automática inteligente. El complemento tampoco se ha probado bien y puede que no funcione perfectamente, por lo que espero poder obtener comentarios de los usuarios a través de la lista de correo que se encuentra en el sitio de desarrollo de código de Google (que se enumera a continuación). Ojalá tuviera tiempo para desarrollarlo más. Solo lo desarrollo en mi tiempo libre, que es muy limitado. Doy la bienvenida a cualquier desarrollador a participar y contribuir al proyecto.

Sitio de desarrollo:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

Mercado de Eclipse (100% gratuito y de código abierto):
http://marketplace.eclipse.org/content/llvm-toolchain-eclipse-cdt

ACTUALIZACIÓN: El complemento está obsoleto. En su lugar, instale "C / C ++ LLVM-Family Compiler Build Support" en Lenguajes de programación utilizando el sitio oficial de actualización de Eclipse, por ejemplo, http://download.eclipse.org/releases/mars

Petri Tuononen
fuente
Hola. ¡Me alegro de verte aquí! Dice "Se proporcionan binarios MinGW para LLVM y front-end". ¿Puede agregar (aquí o en el sitio de código de Google) un enlace a los binarios mingw de LLVM?
osgx
1
Además, sobre la tesis de tu blog. clang no es para ada o fortran: "Para otros lenguajes, incluidos Java, Fortran y Ada, LLVM sigue dependiendo de GCC"
osgx
2
Puede obtener los binarios de mingw para LLVM 2.9 desde aquí: llvm.org/releases/download.html#2.9
Petri Tuononen
1
Buena nota: tienes razón en que LLVM-GCC es para otros idiomas. Debería haber escrito que "LLVM se compila" sin una interfaz específica mencionada, pero eliminaré a Fortran y Ada del resumen.
Petri Tuononen
También puede integrar el compilador LLVM con Microsoft VS. Aquí está el enlace llvm.org/docs/GettingStartedVS.html . espero que esto ayude.
Krishna Oza
21

Dan Gohman, colaborador de LLVM, agregó recientemente la finalización de código Clang a vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc está diseñado para su uso en el desarrollo de LLVM y ayuda con el estilo de codificación de LLVM, pero la parte de finalización del código debería ser lo suficientemente fácil de extraer .

Sí, sí, vim no es un IDE, pero puede ser útil conocerlo.

[editar] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el proporciona una opción similar para emacs .

ohmántica
fuente
11

Qt Creator también funciona con Clang ...

Kokizzu
fuente
Gracias, añadido a la pregunta. ¿Puedes decir, desde qué versión de QTcreator hay soporte para clang?
osgx
1
2.4.1 haría ... en linux, no tiene que agregar manualmente la cadena de herramientas clang ... aquí está la información sobre cómo agregar la cadena de herramientas si está usando Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu
pero solo lo está usando para completar y analizar automáticamente
James Harper
9

Ahora están agregando soporte para el enlace de Visual Studio . Se puede descargar aquí .

relaxxx
fuente
5

No hay uno para Windows. Pero si desea una finalización automática inteligente, netbeans tiene una de las mejores finalizaciones de código para C ++. Analiza macros, contenedores genéricos y punteros inteligentes. Además, proporciona refactorización, inserción de código de constructores y captadores y definidores. Funciona muy bien. Sin embargo, dado que todavía usa un analizador separado para C ++, no detecta tantos errores como el compilador.

Netbeans para java está integrado con el compilador, por lo que da errores y advertencias a medida que escribe, así como finalización de código sintácticamente correcta. Por lo tanto, es muy probable que netbeans se integre en el futuro con clang para proporcionar el mismo tipo de características para C ++.

Paul Fultz II
fuente
2
¿Cómo analiza netbeans la fuente? ¿Qué interfaz C / C ++ utiliza?
osgx
3
Sí, netbeans analiza la fuente en sí para completar el código. Quizás en el futuro usarán clang para analizar, pero eso aún no se ha integrado. Puede seleccionar diferentes compiladores para netbeans gcc o clang. Todavía no lo he probado con clang.
Paul Fultz II
4

¿Puedo agregar SublimeText 2? Ya tiene un complemento SublimeClang que admite la finalización de código inteligente basada en clang.

Hindol
fuente
Acerca del complemento: "Proporciona sugerencias de autocompletado para C / C ++ / ObjC / ObjC ++. Opcionalmente, también analizará el código a medida que se escribe y mostrará errores y advertencias".
osgx
DESCATALOGADO
Johan Boulé
1
EasyClangComplete para Sublime 3 en su lugar.
luna soleada
3

Clang tiene un controlador que es (al menos se supone que es) un sustituto directo de gcc, por lo que esencialmente cualquier IDE que pueda usar gcc como compilador también debería poder usar clang como compilador (aunque no lo he probado personalmente, así que no puedo dar fe de lo bien que funciona).

Jerry Coffin
fuente
1
Pero no podrá utilizar ninguna función adicional al conjunto de herramientas estándar, como el análisis de código y la finalización de tabulaciones.
Mooing Duck
3

No.

Actualmente, solo xcode tiene un soporte mínimo de clang. Si desea utilizar el análisis estático clang en Windows, tendrá que hacerlo a través de la CLI.

Arelius
fuente
6
Este tipo de respuestas / preguntas deben tener un tiempo de espera. (Meta tema)
Hernán Eche
Hernán Eche, sí, pero puedo cambiar la respuesta aceptada en cualquier momento. Puede preguntarme si cree que la situación ha cambiado y la respuesta es "Sí"
osgx
3

KDevelop para Windows es otra opción. Aunque todavía se encuentra en las primeras etapas (actualmente necesita configurar el entorno para poder usar los compiladores MSVC / MinGW usted mismo), es utilizable y trae la asombrosa comprensión del código del IDE a Windows.

https://www.kdevelop.org/features

kfunk
fuente
1

No es un IDE, pero es una especie de cruce entre IDE y editor simple, una alternativa útil para aquellos a quienes no les importa escribir configuraciones a mano: una combinación del editor Sublime Text 3 y el complemento EasyClangComplete (más el formato Clang para mantener su código ordenado y ordenado). Funciona bien en Windows gracias a los esfuerzos recientes para hacer compatible con LLVM MSVC ( Clang-cl también es capaz de generar archivos .PDB compatibles a partir de 2018, lo cual es crucial para la depuración).

Actualización: a partir de 2019, una alternativa mucho mejor y preparada para el futuro a EasyClangComplete es usar Clangd a través del complemento LSP .

luna soleada
fuente