LLVM C ++ IDE para Windows


92

Existe algum IDE C / C ++ para Windows, que é integrado com o compilador LLVM (e analisador Clang C / C ++), assim como o Xcode moderno faz.

Eu tenho Dev-Cpp (ele usa GCC desatualizado) e Code :: Blocks (com alguns GCC). Mas o GCC me dá mensagens de erro muito crípticas. Quero obter mais mensagens de erro amigáveis ​​ao usuário do frontend do Clang.

Sim, o Clang não pôde ser usado com código C ++ complexo, mas o trunk Clang já pode compilar o próprio LLVM. Então, eu me pergunto se há algum LLVM IDEs em desenvolvimento ou em versões beta.

Sim, posso usar o Clang como outro compilador com IDEs compatíveis com GCC. Mas há algum IDE integrado ao Clang? O Clang tem um formato de saída diferente, portanto, o IDE deve analisá-lo. O Clang pode fornecer análise IDE de fontes. O Clang tem uma opção de análise, que deve ser suportada em um IDE. Dê uma olhada, por exemplo, http://iosdevelopertips.com/xcode/static-code-analysis-clang-and-xcode-3-2.html

E o recurso mais desejado do Clang - é o preenchimento automático inteligente, para que o IDE possa sugerir apenas variantes com sintaxe correta, por exemplo, listar apenas os campos desta estrutura, classe.

Resultados: (mesclados com as respostas):


3
Eu me pergunto se, no futuro, o Emacs ganhará suporte para o Clang. Aliás, há um modo menor do emacs aqui llvm.org/svn/llvm-project/cfe/trunk/utils/… embora eu não tenha testado sozinho.
início de

Code :: Blocks funciona com o Clang.
James Harper de

Respostas:


59

LLVM é suportado no Eclipse CDT via plug-in ( llvm4eclipsecdt ). É o único IDE com suporte do Windows com suporte para LLVM , até onde eu sei. Eu sou o autor principal do plug-in, então você pode fazer qualquer pergunta relacionada a ele.

O plug-in oferece a funcionalidade básica para compilação Clang e llvm-gcc e suporte para Linux e Windows (c / Cygwin e MiNGW). As ferramentas LLVM, como assembler, archiver, linker e compilador estático (llc), são configuradas e podem ser personalizadas via UI. O plug-in oferece todos os benefícios que o IDE pode oferecer, como fácil configuração e construção com uma ação.

A única desvantagem é que ele ainda não está pronto, uma vez que não possui alguns dos recursos avançados que o LLVM pode oferecer, como análise Clang e preenchimento automático inteligente. O plug-in também não foi bem testado e pode não funcionar perfeitamente, portanto, espero poder obter feedback do usuário através da lista de e-mails encontrada no site de desenvolvimento de código do Google (listado abaixo). Eu gostaria de ter tempo para desenvolvê-lo ainda mais. Eu só desenvolvo no meu tempo livre, que é muito limitado. Eu dou boas-vindas a todos os desenvolvedores para participar e contribuir com o projeto.

Site de desenvolvimento:
http://code.google.com/p/llvm4eclipsecdt/
https://github.com/TuononenP/llvm4eclipsecdt

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

ATUALIZAÇÃO: O plugin está obsoleto. Em vez disso, instale "C / C ++ LLVM-Family Compiler Build Support" em Programming Languages ​​usando o site oficial de atualização do Eclipse, por exemplo, http://download.eclipse.org/releases/mars


Oi. Contente por te ver aqui! Você diz "Binários MinGW são fornecidos para LLVM e front-ends" - você pode adicionar (aqui ou no site google-code) um link para binários mingw de LLVM?
osgx

1
Além disso, sobre a tese do seu blog. clang não é para ada ou fortran: "Para outras linguagens, incluindo Java, Fortran e Ada, o LLVM permanece dependente do GCC"
osgx

2
Você pode obter os binários do mingw para o LLVM 2.9 aqui: llvm.org/releases/download.html#2.9
Petri Tuononen

1
Boa nota: você está certo que o LLVM-GCC é para outras linguagens. Eu deveria ter escrito que "LLVM compila" sem nenhum front-end específico mencionado, mas removerei Fortran e Ada do resumo.
Petri Tuononen

Você também pode integrar o compilador LLVM com o Microsoft VS. Aqui está o link llvm.org/docs/GettingStartedVS.html . espero que isto ajude.
Krishna Oza

21

O contribuidor do LLVM, Dan Gohman, adicionou recentemente a conclusão de código Clang ao vim .

http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/vim/vimrc destina-se ao uso no desenvolvimento do próprio LLVM e ajuda com o estilo de codificação do LLVM, mas a parte de conclusão de código deve ser fácil de extrair .

Sim, sim, o vim não é um IDE, mas pode ser útil conhecer.

[editar] https://llvm.org/svn/llvm-project/cfe/trunk/utils/clang-completion-mode.el fornece uma opção semelhante para emacs .


11

O Qt Creator também funciona com o Clang ...


Obrigado, adicionado à pergunta. Você pode dizer de qual versão do QTcreator existe o suporte do clang?
osgx

1
2.4.1 faria .. no linux, você não tem que adicionar a cadeia de ferramentas clang manualmente .. aqui está a informação de como adicionar a cadeia de ferramentas se você estiver usando o Windows: doc.qt.nokia.com/qtcreator-2.4/ creator-tool-chains.html
Kokizzu

mas está usando-o apenas para completar e analisar automaticamente
James Harper


5

Não existe um para janelas. Mas se você deseja completar o autocompletar inteligente, o netbeans tem um dos melhores completamentos de código para C ++. Ele analisa macros, contêineres genéricos e ponteiros inteligentes. Além disso, ele fornece refatoração, inserção de código de construtores e getters e setters. Funciona muito bem. No entanto, como ele ainda usa um analisador separado para C ++, ele não captura tantos erros quanto o compilador.

O Netbeans para java é integrado ao compilador, portanto, fornece erros e avisos conforme você digita, bem como a conclusão do código sintaticamente correta. Portanto, o netbeans provavelmente se integrará ao clang no futuro para fornecer o mesmo tipo de recursos para C ++.


2
como o netbeans analisa a fonte? Qual frontend C / C ++ ele usa?
osgx

3
Sim, o netbeans analisa o próprio código-fonte para completar o código. Talvez no futuro eles usem o clang para análise, mas ainda não foi integrado. Você pode selecionar diferentes compiladores para netbeans gcc ou clang. Ainda não experimentei com clang.
Paul Fultz II



4

Posso adicionar SublimeText 2? Ele já tem um plugin SublimeClang que suporta a conclusão de código inteligente baseada em clang.


Sobre o plugin: "fornecendo sugestões de preenchimento automático para C / C ++ / ObjC / ObjC ++. Opcionalmente, também analisará o código conforme é digitado e mostrará erros e avisos."
osgx

DESCONTINUADO
Johan Boulé

1
Em vez disso, EasyClangComplete for Sublime 3.
lua ensolarada de


3

O Clang tem um driver que é (pelo menos supostamente) um substituto direto do gcc, portanto, essencialmente, qualquer IDE que possa usar o gcc como seu compilador deve ser capaz de usar o clang como seu compilador também (embora eu não o teste pessoalmente, portanto, não posso garantir como funciona bem).


1
Mas não será capaz de usar nenhum recurso adicional ao conjunto de ferramentas padrão, como análise de código e preenchimento de tabulação.
Mooing Duck

3

Não.

Apenas o xcode tem suporte mínimo de clang atualmente. Se você quiser usar a análise estática do clang no Windows, terá que fazer isso por meio da CLI.


6
Este tipo de resposta / pergunta deve ter um tempo limite. (Meta tópico)
Hernán Eche

Hernán Eche, sim, mas posso mudar a resposta aceita a qualquer momento. Você pode me perguntar se acha que a situação mudou e a resposta é "Sim"
osgx

3

O KDevelop para Windows é outra opção. Embora ainda esteja nos estágios iniciais (atualmente você precisa configurar o ambiente para poder usar os compiladores MSVC / MinGW por conta própria), é utilizável e traz a incrível compreensão do código do IDE para o Windows.

https://www.kdevelop.org/features


1

Não é bem um IDE, mas uma espécie de cruzamento entre IDE e editor simples, uma alternativa utilizável para aqueles que não se importam em escrever configurações à mão: uma combinação de editor Sublime Text 3 e plug- in EasyClangComplete (mais o formato Clang para manter seu código organizado e arrumado). Funciona bem no Windows graças aos esforços recentes para tornar o LLVM MSVC compatível (o Clang-cl também é capaz de gerar .PDBs compatíveis a partir de 2018, o que é crucial para a depuração).

Atualização: a partir de 2019, uma alternativa muito melhor e preparada para o futuro ao EasyClangComplete é usar o Clangd via plug-in LSP .

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.