Eu quero expandir meus horizontes de programação para o Linux. Um conjunto de ferramentas básico bom e confiável é importante, e o que é mais básico que um IDE?
Eu poderia encontrar estes tópicos de SO:
Não estou procurando um IDE leve . Se um IDE vale o dinheiro, eu pagarei por ele, portanto não precisa ser gratuito.
Minha pergunta então:
Que bom, o IDE de programação C ++ está disponível para Linux?
Os mínimos são bastante padrão: destaque de sintaxe, conclusão de código (como intellisense ou sua contraparte Eclipse) e depuração integrada (por exemplo, pontos de interrupção básicos).
Eu mesmo pesquisei, mas há tantos que é quase impossível separar o bem do mal à mão, especialmente para alguém como eu que tem pouca experiência em codificação C ++ no Linux. Eu sei que o Eclipse suporta C ++ , e eu realmente gosto desse IDE para Java, mas é bom para C ++ e há algo melhor?
O segundo post realmente tem boas sugestões, mas o que estou perdendo é o que exatamente torna o IDE sugerido tão bom para o usuário, quais são suas (des) vantagens?
Talvez minha pergunta deva ser:
Qual IDE você propõe (considerando suas experiências) e por quê?
Respostas:
Inicialmente: confusão
Ao escrever originalmente essa resposta, eu havia mudado recentemente do Visual Studio (com anos de experiência) para o Linux e a primeira coisa que fiz foi tentar encontrar um IDE razoável. Na época, isso era impossível: não existia um bom IDE.
Epifania: O UNIX é um IDE. Tudo isso. 1
E então percebi que o IDE no Linux é a linha de comando com suas ferramentas:
Dependendo de suas necessidades, você terá que instalar e configurar vários plugins para fazer o editor funcionar bem (essa é a parte mais irritante). Por exemplo, a maioria dos programadores no Vim se beneficiará do plugin YouCompleteMe para o preenchimento automático inteligente.
Feito isso, o shell é sua interface de comando para interagir com as várias ferramentas - Depuradores (gdb), Profilers (gprof, valgrind) etc. Você configura seu ambiente de projeto / construção usando Make , CMake , SnakeMake ou qualquer um dos vários alternativas. E você gerencia seu código com um sistema de controle de versão (a maioria das pessoas usa o Git ). Você também usa o tmux (anteriormente também tela) para multiplexar (= pensar em várias janelas / guias / painéis) e persistir na sua sessão do terminal.
O ponto é que, graças ao shell e algumas convenções de escrita de ferramentas, todos eles se integram . Dessa forma, o shell do Linux é um ambiente de desenvolvimento verdadeiramente integrado , completamente a par de outros IDEs modernos. (Isso não significa que IDEs individuais não tenham recursos que a linha de comando possa estar faltando, mas o inverso também é verdadeiro.)
Cada um com sua mania
Não posso exagerar o quão bem o fluxo de trabalho acima funciona depois que você adquire o hábito. Mas algumas pessoas simplesmente preferem editores gráficos e, nos anos desde que essa resposta foi originalmente escrita, o Linux ganhou um conjunto de excelentes IDEs gráficos para várias linguagens de programação diferentes (mas, até onde eu sei, para C ++). Tente-os mesmo que, como eu, você acabe não os usando. Aqui está apenas uma seleção pequena e tendenciosa:
Lembre-se de que esta lista está longe de estar completa.
1 Eu roubei esse título do comentário do dsm.
2 Eu costumava me referir ao Vim aqui. E embora o Vim comum ainda seja mais do que capaz, o Neovim é um reinício promissor e modernizou algumas verrugas antigas.
fonte
Meu favorito pessoal é o CodeLite 2.x IDE.
veja: http://www.codelite.org
A decisão de usar o CodeLite foi baseada em uma pesquisa sobre o seguinte IDE C ++ para Linux:
Afinal de contas eu decidi usar codelite 2.x .
Abaixo, listei alguns prós e contras sobre os IDEs C ++ mencionados. Observe que isso reflete apenas minha opinião pessoal!
EDIT : que pena que SOF não suporta tabelas, então eu tenho que escrever em parágrafos ...
Eclipse Galileo com CDT Plugin
Prós:
Contras:
NetBeans 6.7 (observe que essa também é a base do SunStudio IDE)
Prós:
Contras:
KDevelop4 (nota: não fiz muitos testes nele)
Prós:
Contras:
CodeBlocks 8.02 (nota: eu não fiz muitos testes nele)
Prós:
Contras:
CodeLite 2.x (nota: este é o meu favorito)
Prós:
Contras:
fonte
Em breve, você descobrirá que os IDEs não são suficientes e precisará aprender a cadeia de ferramentas do GCC de qualquer maneira (o que não é difícil, pelo menos aprendendo a funcionalidade básica). Mas nenhum dano na redução da dor de transição com os IDEs, IMO.
fonte
Uma resposta rápida, apenas para adicionar um pouco mais de conhecimento a este tópico:
Você deve definitivamente conferir o NetBeans . O Netbeans 6.7 possui os seguintes recursos:
Eu acho que é uma substituição perfeita (e muito melhor) do Visual Studio e uma ferramenta muito boa para aprender C / C ++.
Boa sorte!
fonte
Pelo menos para projetos específicos do Qt , o Qt Creator (da Nokia / Trolltech / Digia) mostra uma grande promessa.
fonte
Minha primeira fonte foram, na verdade, as
man
páginas das ferramentas . Apenas digitena linha de comando (
$
aqui faz parte do prompt, não da entrada).Dependendo da plataforma, eles são bem escritos e também podem ser encontrados na internet. No caso de
make
, eu realmente li a documentação completa que levou algumas horas. Na verdade, não acho que isso seja necessário ou útil na maioria dos casos, mas tive alguns requisitos especiais em minhas primeiras atribuições no Linux que exigiram um sofisticado makefile. Depois de escrever o makefile, entreguei a um colega experiente que fez alguns pequenos ajustes e correções. Depois disso, eu praticamente sabiamake
.Eu usei o GVIM porque tinha alguma experiência anterior (mas não muita) lá, não posso dizer nada sobre o Emacs ou alternativas. Acho que realmente ajuda a ler o
.gvimrc
arquivo de configuração de outras pessoas . Muitas pessoas colocam na web. Aqui está o meu .Não tente dominar todos os binutils de uma vez, pois há muitas funções. Mas obtenha uma visão geral para saber onde procurar quando precisar de algo no futuro. No entanto, você deve conhecer todos os parâmetros importantes para
g++
eld
(a ferramenta de vinculação do GCC que é chamada automaticamente, exceto quando explicitamente impedida).Destaque de sintaxe: sim, e muito melhor que o Visual Studio. Conclusão de código: sim- ish . Primeiro, devo admitir que não usei a conclusão do código C ++, mesmo no Visual Studio, porque (comparado ao VB e C #) não era bom o suficiente. Eu não o uso com frequência agora, mas, no entanto, o GVIM tem suporte nativo de conclusão de código para C ++. Combinado com a biblioteca ctags e uma lista de tags do tipo plug-in, isso é quase um IDE.
Na verdade, o que me levou a começar foi um artigo de Armin Ronacher. Antes de ler o texto, veja as capturas de tela no final!
Sim. Mas é o mesmo para o Visual Studio, não é (nunca usei o Tomate Inteiro)? Obviamente, o destaque da sintaxe mostrará colchetes não correspondentes, mas isso é tudo.
Eu uso o
gdb
que é uma ferramenta de linha de comando. Há também um frontend gráfico chamadoDDD
.gdb
é uma ferramenta de depuração moderna e pode fazer tudo o que você pode fazer em um IDE. A única coisa que realmente me irrita é ler um rastreamento de pilha porque as linhas não são recuadas ou formatadas, por isso é realmente difícil digitalizar as informações quando você está usando muitos modelos (o que eu faço). Mas esses também interferem no rastreamento de pilha nos IDEs.Você nem deveria tentar comparar um editor moderno e completo, como o Emacs ou o GVIM, com o Bloco de Notas. O bloco de notas é um
TextBox
controle embelezado , e isso realmente faz toda a diferença. Além disso, trabalhar na linha de comando é uma experiência muito diferente no Linux e Windows. O Windowscmd.exe
está severamente aleijado. O PowerShell é muito melhor./ EDIT: Devo mencionar explicitamente que o GVIM possui edição com guias (como na navegação por guias, não em espaços versus tabulações)! Levei séculos para encontrá-los, embora não estejam escondidos. Basta digitar em
:tabe
vez de simples:e
ao abrir um arquivo ou criar um novo e o GVIM criará uma nova guia. A alternância entre guias pode ser feita usando o cursor ou vários atalhos diferentes (dependendo da plataforma). A chavegt
(tipo g, então tno modo de comando) deve funcionar em qualquer lugar e passa para a próxima guia ou número da guia. n se um número foi fornecido. Digite:help gt
para obter mais ajuda.fonte
clang_complete
plug-in agora. Esta resposta é de 2009 e algumas partes estão desatualizadas. Mas houve melhorias por todos os lados, por isso mais ou menos se equilibra.Para não repetir uma resposta, mas acho que posso adicionar um pouco mais.
O Slickedit é um excelente IDE.
Ele suporta bem grandes bases de código, sem diminuir a velocidade ou gastar todo o tempo indexado. (Este é um problema que tive com o cdt do eclipse). A velocidade do Slickedit é provavelmente a coisa mais legal, na verdade.
A conclusão do código funciona bem e há uma grande quantidade de opções para formatação automática, embelezamento e refatoração.
Possui depuração integrada.
Possui suporte a plug-ins e comunidade bastante ativa para criá-los.
Em teoria, você deve ser capaz de se integrar bem com as pessoas que fazem o material de makefile tradicional, pois permite criar um projeto diretamente a partir de um, mas isso não funcionou tão bem quanto eu gostaria quando o experimentei.
Além do Linux, existem versões para Mac e Windows, caso você precise.
fonte
Como um cara antigo do UNIX, eu sempre uso o Emacs. Mas isso tem uma curva de aprendizado bastante íngreme e longa, então não tenho certeza se posso recomendá-lo aos recém-chegados.
Realmente não existe um IDE "bom" para Linux. O Eclipse não é muito bom para C / C ++ (o CDT está melhorando, mas ainda não é muito útil). Os outros estão ausentes de todos os recursos que você procura.
É realmente importante aprender como todas as ferramentas individuais (gcc, make, gdb etc.) funcionam. Depois de fazer isso, você pode achar a maneira do Visual Studio de fazer as coisas muito limitadora.
fonte
O Checkout Netbeans, está escrito em Java, para que você tenha o mesmo ambiente, independentemente do seu sistema operacional, e suporta muito mais do que apenas C ++.
Não vou tentar convencê-lo, porque acho que os IDEs podem ser uma escolha muito pessoal. Para mim, melhora minha produtividade sendo rápido, suportando os idiomas em que codifico e possui os recursos padrão que você esperaria de um IDE.
fonte
Apenas um acompanhamento rápido para esta pergunta ...
Faz um mês desde que comecei a usar o Vim como minha principal ferramenta 'GUI' para programar C ++ no Linux. No começo, a curva de aprendizado era realmente um pouco íngreme, mas depois de um tempo e com as opções certas ativadas e os scripts em execução, eu realmente entendi!
Adoro a maneira como você pode moldar o Vim para atender às suas necessidades; basta adicionar / alterar os mapeamentos de teclas e o Vim se transforma em um 'IDE' altamente produtivo.
A cadeia de ferramentas para criar e compilar um programa C ++ no Linux também é realmente intuitiva. make e g ++ são as ferramentas que você usará.
O depurador ddd, no entanto, não é realmente tão bom, mas talvez seja porque eu não tive tempo para dominá-lo corretamente.
Portanto, para qualquer um que esteja procurando um bom IDE C ++ no Linux, como eu, sua melhor aposta é com as ferramentas padrão disponíveis no próprio Linux (Vim, g ++, ddd) e você realmente deve pelo menos tentar usar eles, antes de procurar outra coisa ...
Por último, mas não menos importante, eu realmente quero agradecer ao konrad por sua resposta aqui. Isso realmente me ajudou a encontrar o meu caminho no ambiente de desenvolvimento Linux, obrigado!
Também não estou fechando esta pergunta, para que as pessoas ainda possam reagir ou até mesmo adicionar novas sugestões ou adições às respostas já muito boas ...
fonte
Eu recomendo que você leia The Art Of UNIX Progranmming . Isso moldará sua mente ao usar o ambiente como seu IDE.
fonte
A resposta mais curta é: escolhendo o "editor" desejado e use o console do GDB ou um simples front end do GDB para depurar seu aplicativo. Os depuradores vêm com IDEs sofisticados, como o Netbeans, que suga C / C ++. Eu uso o Netbeans como meu editor e o Insight e o console GDB como meu depurador.
Com informações, você tem uma boa interface gráfica e o poder bruto do GDB.
Assim que você se acostumar com os comandos do GDB, você começará a amá-lo, pois poderá fazer coisas que nunca poderá fazer usando uma GUI. Você pode usar até Python como sua linguagem de script se estiver usando o GDB 7 ou uma versão mais recente.
A maioria das pessoas aqui prestou mais atenção aos "editores" dos IDEs. No entanto, se você estiver desenvolvendo um grande projeto em C / C ++, poderá gastar mais de 70% do seu tempo com facilidade nos "depuradores". Os depuradores dos IDEs extravagantes estão pelo menos 10 anos atras do Visual Studio. Por exemplo, o Netbenas possui interfaces muito semelhantes ao Visual Studio. Mas seu depurador tem várias desvantagens em comparação com o Visual Studio.
A lista pode demorar muito mais.
Fiquei tão frustrado com as desvantagens do Netbeans ou de outros IDEs similares, de modo que comecei a aprender o GDB. Eu descobri que o próprio GDB é muito poderoso. O GDB não possui todas as "desvantagens" mencionadas acima. Na verdade, o GDB é muito poderoso, é ainda melhor que o Visual Studio de várias maneiras. Aqui, apenas mostro um exemplo muito simples.
Por exemplo, você tem uma matriz como:
Quando seu aplicativo é interrompido e você deseja examinar os dados em IdAndValues. Por exemplo, se você deseja encontrar os ordinais e os valores na matriz para um "ID" específico, é possível criar um script como o seguinte:
Você pode usar todas as variáveis em sua aplicação no contexto atual, suas próprias variáveis (no nosso exemplo, é $ i), argumentos passados (no nosso exemplo, é $ arg0) e todos os comandos do GDB (interno ou definido pelo usuário) )
Use o PrintVal 1 do prompt do GDB para imprimir valores para o ID "1"
A propósito, o NetBeans vem com um console GDB, mas, usando o console, você pode travar o Netbeans. E acredito que é por isso que o console está oculto por padrão no NetBeans
fonte
Eu estou usando o " Geany " encontrado bom até agora, seu IDE rápido e leve.
Entre os recursos de Geany estão :
fonte
Se você gosta do Eclipse para Java, sugiro o Eclipse CDT. Embora o suporte ao C / C ++ não seja tão poderoso quanto o Java, ele ainda oferece a maioria dos recursos. Ele possui um recurso interessante chamado Projeto Gerenciado que facilita o trabalho com projetos C / C ++ se você não tiver experiência com Makefiles. Mas você ainda pode usar Makefiles. Eu faço codificação C e Java e estou muito feliz com o CDT. Estou desenvolvendo o firmware para um dispositivo incorporado em C e um aplicativo em Java que fala com esse dispositivo, e é muito bom usar o mesmo ambiente para ambos. Eu acho que provavelmente me torna mais produtivo.
fonte
Eu amo como as pessoas perdem completamente a solicitação na pergunta original para um IDE. Linux não é um IDE. Isso não é o que essas palavras significam. Aprendi c e c ++ usando vi e gcc e make, e não estou dizendo que elas não são ferramentas adequadas, mas NÃO são uma IDE. Mesmo se você usar ferramentas mais elaboradas, como vim ou emacs ou qualquer editor sofisticado que desejar, digitar comandos em uma linha de comando não é um IDE.
Além disso, todos vocês sabem que o make existe como parte do visual studio, certo? A idéia de que um IDE esteja "limitando" é tola se você puder usá-lo para acelerar algumas coisas, mas ainda assim poderá recorrer às coisas da linha de comando quando necessário.
Tudo isso dito, eu sugiro, como vários acima, tentando blocos de código. Ele possui destaque de código decente, uma maneira bastante fácil de criar um projeto, codificá-lo, executá-lo etc., que é o núcleo de um IDE real e parece bastante estável. Depurar é uma porcaria ... Nunca vi um depurador interativo decente em nenhuma variante linux / unix. GDB não é isso. Se você está acostumado à depuração no estilo visual studio, está quase sem sorte.
Enfim, eu vou arrumar minhas coisas, eu sei que a multidão de linux que vê apenas uma vista vai gritar isso e me expulsar da cidade em pouco tempo.
fonte
make + vim + gdb = um ótimo IDE
fonte
Eu gosto bastante do IDE do Ultimate ++ . Ele possui alguns recursos que foram projetados para uso com sua própria biblioteca (que, BTW, é um bom kit de ferramentas, se você não deseja comprar no GTK + ou no QT), mas funciona perfeitamente com projetos gerais de C ++. Ele fornece conclusão de código decente, boa coloração de sintaxe, depuração integrada e todos os outros recursos que os IDEs mais modernos oferecem.
fonte
Eu realmente sugiro codeblocks . Não é tão pesado quanto o Eclipse e possui suporte ao projeto do Visual Studio.
fonte
Talvez o Projeto Ferramentas Linux para Eclipse possa atender às suas necessidades?
fonte
No Linux, existem muitos IDEs:
Na minha experiência, os mais valiosos são o Eclipse e o Qt Creator . Ambos fornecem todos os recursos "padrão" (por exemplo, preenchimento automático, realce de sintaxe, depurador, integração com git). Vale ressaltar que o Eclipse também fornece funcionalidades de refatoração, enquanto o Qt Creator fornece integração com o Valgrind e suporte para implementação em destinos remotos.
Além disso, o CLion IDE comercial parece muito bom (mas não o usei extensivamente).
fonte
Ouvi dizer que Anjuta é bastante liso para os usuários do Gnome. Eu brinquei um pouco com o KDevelop e é legal, mas meio que falta de recursos. O Code :: Blocks também é muito promissor, e eu gosto mais disso.
fonte
O Sun Studio versão 12 é um download gratuito (suporte gratuito e pago disponível) - http://developers.sun.com/sunstudio/downloads/thankyou.jsp?submit=%A0FREE+Download%A0%BB%A0 .
Tenho certeza de que você possui suporte à conclusão e depuração de código, incluindo suporte a plug-ins neste IDE.
O Sun Studio está disponível para Linux e Solaris. fóruns: http://developers.sun.com/sunstudio/community/forums/index.jsp . Fóruns do Sun Studio Linux: http://forum.sun.com/forum.jspa?forumID=855
Ficarei ansioso para ouvir seus comentários sobre esta ferramenta.
BR,
~ A
fonte
Eu já usei o Ultimate ++ IDE e é bastante bom.
fonte
Eu concordo principalmente, mas o problema também é de percepção: esquecemos o quão difícil foi se tornar produtivo em qualquer IDE (ou outro ambiente) escolhido. Acho os IDE (Visual Studio, NetBeans, Eclipse) surpreendentemente pesados de várias maneiras.
Eu segundo isso; use o Emacs como meu editor principal no Linux e no MSW (XP2, W2K). Eu discordo que ele possui uma curva de aprendizado acentuada , mas diria que, devido ao grande número de recursos, ele possui uma longa curva de aprendizado. Você pode ser produtivo em pouco tempo, mas, se quiser, poderá aprender novos recursos nos próximos anos.
No entanto - não espere que todos os recursos do Emacs estejam disponíveis nos menus suspensos; há muita funcionalidade para encontrá-lo lá.
Como eu disse, usei o GNU Emacs no MSW por anos. E sempre funcionou bem com o Visual Studio até que eu "atualizei" para 2008; agora, às vezes, atrasa muitos segundos antes de atualizar os arquivos do disco. O principal motivo da edição na janela do VS é o recurso de conclusão de código "Intellisense".
fonte
geany eu recomendo
fonte
Embora eu use o Vim, alguns de meus colegas de trabalho usam o SlickEdit, que parece muito bom. Não tenho certeza sobre a depuração integrada porque não conseguiríamos fazer isso em nosso projeto específico.
O SlickEdit tem um bom suporte para navegar em grandes bases de código, com referência cruzada e salto de tags. É claro que ele também possui coisas básicas, como destaque de sintaxe e conclusão de código.
fonte
Eu uso o Eclipse CDT e o Qt Creator (para aplicativos Qt).
Essas são as minhas preferências. É uma pergunta muito sugestiva e existem tantas respostas quanto desenvolvedores. :)
fonte
SlickEdit. Eu uso e adoro o SlickEdit desde 2005, no Windows e no Linux. Também tenho experiência em trabalhar no Visual Studio (5, 6, 2003, 2005) e apenas com Emacs e linha de comando. Eu uso o SlickEdit com makefiles externos, alguns dos meus colegas de equipe usam o SlickEdit, outros usam o Emacs / vi. Não uso o depurador integrado, o controle de versão integrado e o sistema de compilação integrado: geralmente considero muita integração uma verdadeira dor. O SlickEdit é robusto (com poucos bugs), rápido e intuitivo. É como um carro alemão, um carro de motorista.
As versões mais recentes do SlickEdit parecem oferecer muitos recursos que não me interessam, estou um pouco preocupado que o produto fique inchado e diluído no futuro. Por enquanto (eu uso a V13.0) é ótimo.
fonte
Para mim, o Ultimate ++ parece ser a melhor solução para escrever um programa cross-os
fonte
Se você estava usando o vim por um longo tempo, deveria fazer isso como seu IDE. Existem muitos addons disponíveis. Eu achei várias delas bastante úteis e compilei aqui, dê uma olhada.
E muito mais na série de dicas e truques do vi / vim por lá.
fonte