| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Usando o Descritor da Coleção de Ferramentas C/C++ - Tutorial do NetBeans IDE |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Usando o Descritor da Coleção de Ferramentas C/C++ - Tutorial do NetBeans IDE - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Usando o Descritor da Coleção de Ferramentas C/C++ - Tutorial do NetBeans IDE |
| |
| _Contribuição de link:mailto:alexander.simon@oracle.com[+_Alexander Simon_+] |
| Março de 2014_ [Número da revisão: V8.0-1] |
| |
| |
| image::images/netbeans-stamp.png[title="O conteúdo desta página se aplica ao NetBeans IDE 8.0"] |
| |
| |
| *Para seguir este tutorial, você precisa do software a seguir.* |
| |
| |=== |
| |Software |Versão Necessária |
| |
| |NetBeans IDE (incluindo o suporte ao C/C++) |link:https://netbeans.org/downloads/index.html[+Versão 8.0+] |
| |
| |Java Development Kit (JDK) |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Versão 7 ou 8+] |
| |=== |
| |
| |
| Consulte as link:../../../community/releases/80/install.html[+Instruções de Instalação do NetBeans IDE+] e a link:../../../community/releases/80/cpp-setup-instructions.html[+ Configuração do NetBeans IDE para o C/C++/Fortran+] para obter informações sobre o download e a instalação do software necessário. |
| |
| |
| == Introdução |
| |
| Este tutorial demonstra como editar coleções de ferramentas existentes ou criar a versão personalizada de uma coleção no NetBeans IDE 8.0. |
| |
| O exemplo mostrado se aplica à coleção de ferramentas GNU para Oracle Solaris e Linux, mas os conceitos também podem ser aplicados ao Windows e ao Mac. Usando estas informações, você pode aprender a fazer o seguinte: |
| |
| * Alterar os flags do compilador que o IDE usa por default para compilar arquivos C/C++ |
| * Adicionar um compilador que não é suportado pelo IDE |
| |
| |
| == Coleções de Ferramentas |
| |
| Uma coleção de ferramentas é um conjunto de compiladores, um utilitário make e um depurador que é especificado no IDE por meio do _descritor de coleção da ferramenta_. Cada vez que você compila, executa ou depura seu código, o IDE executa um arquivo executável que é descrito no descritor de coleção de ferramentas para a coleção de ferramentas para a qual o projeto está configurado para usar. A funcionalidade Assistência ao Código inclui caminhos e macros obtidos do descritor da coleção de ferramentas. |
| |
| O descritor da coleção de ferramentas é um arquivo XML localizado no módulo ``_IDE_HOME_/cnd/modules/org-netbeans-modules-cnd-toolchain.jar`` na pasta ``org/netbeans/modules/cnd/toolchain/resources/toolchaindefinition/`` . Você não deve editar estes arquivos XML do descritor de ferramentas do IDE original. |
| |
| Este artigo informa como criar duplicações dos descritores da ferramenta em seu próprio diretório do usuário do NetBeans que você pode editar. Em seguida, o IDE usará as informações nos descritores de coleções de ferramentas localizados no diretório do usuário, em vez de nas versões originais. |
| |
| |
| == Coleções de Ferramentas de Contribuição da Comunidade |
| |
| Alguns plug-ins para as coleções de ferramentas foram enviados pelos usuários da comunidade NetBeans: |
| |
| * link:http://plugins.netbeans.org/plugin/36176/cuda-plugin[+Cuda+] |
| * link:http://plugins.netbeans.org/plugin/27033/msp430-toolchain[+TI msp430 microcontroller toolchain+] |
| * link:http://plugins.netbeans.org/plugin/42519/[+Visual Studio+] |
| |
| Observe que esses plug-ins não são suportados oficialmente, mas são mencionados aqui, caso você os ache úteis na criação de seus próprios plug-ins. |
| |
| Pode ser que os usuários do Windows também fiquem interessados em um artigo de um usuário da comunidade NetBeans: link:http://minghuasweblog.wordpress.com/2012/09/27/netbeans-setup-and-gnu-cross-toolchain-configuration-for-arm-developmen/[+NetBeans Setup and GNU Cross-Toolchain Configuration for ARM Development+]. |
| |
| |
| == Editando os Descritores de Coleções de Ferramentas |
| |
| A edição de um descritor da coleção de ferramentas é um pouco difícil, visto que o NetBeans IDE não oferece uma GUI para edição de descritores. Esta seção descreve como fazer cópias de "sombra" dos descritores de coleção da ferramenta que você pode editar, a fim de alterar a forma pela qual o IDE usa as ferramentas. |
| |
| 1. Saia do IDE se ele estiver em execução. |
| 2. Edite o arquivo ``_IDE-HOME_/etc/netbeans.conf`` , no qual ``_IDE-HOME_`` é o diretório de instalação do NetBeans. |
| 3. Adicione o seguinte flag à entrada ``netbeans_default_options`` : |
| |
| [source,java] |
| ---- |
| |
| -J-Dcnd.toolchain.personality.create_shadow=true |
| ---- |
| |
| [start=4] |
| . Inicie o IDE, escolha Ferramentas > Opções e selecione C/C++ na parte superior do painel da janela Opções. |
| |
| O IDE cria um diretório que contém versões de "sombra" dos descritores da coleção de ferramentas no diretório do usuário NetBeans: |
| |
| _userdir_ |
| |
| [source,java] |
| ---- |
| |
| /config/CND/ToolChain |
| ---- |
| |
| A localização de seu diretório de usuário do NetBeans varia de acordo com seu sistema operacional. Algumas possíveis localizações do diretório ``_userdir_/config/CND/ToolChain`` incluem o seguinte: |
| |
| * Windows: ``C:\Documents and Settings\_username_\Application Data\NetBeans\_version_\config\CND\ToolChain`` |
| * Mac: ``/Users/_username_/Library/Application Support/NetBeans/_version_/config/CND/ToolChain`` |
| * Linux e Solaris: ``/home/_username_/.netbeans/_version_/config/CND/ToolChain`` |
| |
| A lista de descritores deve ser semelhante à seguinte: |
| |
| |
| [source,java] |
| ---- |
| |
| CLang.xml SunStudio.xml |
| CLang_mac.xml SunStudio_10.xml |
| CLang_solaris.xml SunStudio_11.xml |
| Cygwin.xml SunStudio_12.1_solaris-sparc.xml |
| Cygwin_4.x.xml SunStudio_12.1_solaris-x86_linux.xml |
| GNU.xml SunStudio_12.2_linuxCompatGNU.xml |
| GNU_mac.xml SunStudio_12.2_solaris-sparc.xml |
| GNU_solaris.xml SunStudio_12.2_solaris-x86_linux.xml |
| Intel.xml SunStudio_12.3_linuxCompatGNU.xml |
| Interix.xml SunStudio_12.3_solaris-sparc.xml |
| MinGW.xml SunStudio_12.3_solaris-x86_linux.xml |
| MinGW_TDM.xml SunStudio_12.xml |
| OSS_linuxCompatGNU.xml SunStudio_8.xml |
| OSS_solaris-sparc.xml SunStudio_9.xml |
| OSS_solaris-x86_linux.xml WinAVR.xml |
| OracleSolarisStudio.xml |
| |
| ---- |
| |
| Você pode editar o descritor para a toolchain que você está usando. Por exemplo, se estiver usando GNU no Solaris, edite o arquivo ``GNU_solaris.xml`` ; se você estiver usando MinGW no Windows, você deve editar o arquivo ``MinGW.xml`` . |
| |
| Para obter informações sobre as tags usadas nestes arquivos XML do descritor, consulte <<details,Detalhes do Arquivo XML da Coleção de Ferramentas>>. Você pode alterar os valores das tags para alterar o procedimento das ferramentas no IDE. |
| |
| Os descritores deste diretório têm prioridade em relação às versões oficiais no diretório _IDE-HOME_. Você deve deletar os descritores de ferramenta que você não deseja que o IDE use, em seu diretório do usuário. |
| |
| |
| [start=5] |
| . Remova o flag ``-J-Dcnd.toolchain.personality.create_shadow=true`` do ``_IDE-HOME_/etc/netbeans.conf`` , de forma que o IDE não crie descritores de sombra novamente. |
| |
| [start=6] |
| . Reinicie o IDE para usar o descritor de ferramentas modificado quando terminar de fazer as alterações. |
| |
| |
| == Criando uma Coleção de Ferramentas Personalizada |
| |
| Esta seção mostra como criar uma coleção de ferramentas que é baseada na coleção de ferramentas GNU com algumas alterações para os flags do compilador para depuração. O exemplo mostra etapas para criar um novo módulo do NetBeans que contenha uma nova coleção de ferramentas para permitir que você compartilhe a coleção de ferramentas ou use-a em outras instâncias do IDE. |
| |
| Para obter informações gerais sobre a criação de módulos NetBeans, consulte link:http://platform.netbeans.org/tutorials/nbm-google.html[+Início Rápido do Plug-in do NetBeans+]. |
| |
| |
| *Para criar uma coleção de ferramentas personalizada:* |
| |
| 1. Certifique-se de que sua instalação do NetBeans inclua o módulo de Desenvolvimento de Plug-in do NetBeans. |
| |
| Escolha Ferramentas > Plug-ins e clique na guia Instalados. Se o módulo Desenvolvimento de Plug-in do NetBeans não estiver instalado, clique na guia Plug-ins Disponíveis e instale o módulo. É possível encontrá-lo rapidamente digitando "plug-in" na caixa Pesquisar. |
| |
| [start=2] |
| . Crie um novo módulo NetBeans escolhendo Arquivo > Novo Projeto. Na página Escolher Projeto do assistente de Novo Projeto, selecione a categoria Módulos NetBeans e o projeto Módulo na primeira etapa do assistente. Clique em Próximo. |
| |
| [start=3] |
| . Na página Nome e Localização, digite o nome do projeto, por exemplo ``mytoolchain`` e deixe todos os campos como estão. Clique em Próximo. |
| |
| [start=4] |
| . Na página Configuração Básica do Módulo, digite ``org.myhome.mytoolchain`` para Base do Nome do Código, que define a string exclusiva que identifica o módulo que você está criando. A base do nome do código também é usada como o pacote principal do módulo. |
| |
| [start=5] |
| . Não marque a caixa de seleção "Gerar Pacote OSGi", pois você usará o sistema de módulos do NetBeans default, em vez do OSGi. |
| |
| [start=6] |
| . Clique em Finalizar. O IDE cria um novo projeto chamado mytoolchain. |
| |
| [start=7] |
| . Na guia Projetos, clique com o botão direito do mouse no nó do projeto mytoolchain e selecione Novo > Outros. |
| |
| [start=8] |
| . No assistente Novo Arquivo, selecione a categoria Desenvolvimento do Módulo e o tipo de arquivo Camada XML. Em seguida, clique em Próximo e em Finalizar. |
| |
| O IDE cria ``layer.xml`` no nó Pacotes de Código-fonte, no pacote principal ``org.myhome.mytoolchain`` e abre ``layer.xml`` no editor. |
| |
| [start=9] |
| . Se o arquivo contiver uma tag ``<filesystem/>`` , substitua-a pelas tags ``filesystem`` de abertura e fechamento: ``<filesystem>`` |
| |
| [source,xml] |
| ---- |
| |
| |
| ``</filesystem>`` |
| ---- |
| |
| [start=10] |
| . Copie e cole o texto seguinte dentro da tag ``layer.xml`` na tag ``filesystem`` : |
| |
| [source,xml] |
| ---- |
| |
| <folder name="CND"> |
| <folder name="Tool"> |
| <file name="GNU_tuned_flavor" url="toolchain/GNU_tuned_flavor.xml"> |
| <attr name="extends" stringvalue="GNU_flavor"/> |
| </file> |
| <file name="GNU_tuned_cpp" url="toolchain/GNU_tuned_cpp.xml"> |
| <attr name="extends" stringvalue="GNU_cpp"/> |
| </file> |
| </folder> |
| <folder name="ToolChains"> |
| <folder name="GNU_tuned"> |
| <attr name="position" intvalue="5000"/> |
| <attr name="SystemFileSystem.localizingBundle" stringvalue="org.myhome.mytoolchain.Bundle"/> |
| <file name="flavor.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_tuned_flavor"/> |
| </file> |
| <file name="c.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_c"/> |
| </file> |
| <file name="cpp.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_tuned_cpp"/> |
| </file> |
| <file name="fortran.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_fortran"/> |
| </file> |
| <file name="assembler.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_assembler"/> |
| </file> |
| <file name="scanner.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_scanner"/> |
| </file> |
| <file name="linker.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_linker"/> |
| </file> |
| <file name="make.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_make"/> |
| </file> |
| <file name="debugger.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_debugger"/> |
| </file> |
| <file name="qmake.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_qmake"/> |
| </file> |
| <file name="cmake.shadow"> |
| <attr name="originalFile" stringvalue="CND/Tool/GNU_cmake"/> |
| </file> |
| </folder> |
| </folder> |
| </folder> |
| |
| ---- |
| |
| [start=11] |
| . Abra o arquivo ``Bundle.properties`` e adicione a seguinte string: |
| ``CND/ToolChains/GNU_tuned=My GNU Tuned Tool Collection`` |
| |
| [start=12] |
| . Crie um subpacote ``toolchain`` clicando com o botão direito do mouse no pacote ``org.myhome.mytoolchain`` em Pacotes de Código-fonte e selecionando Novo > Pacote Java. Substitua o nome do pacote default ``newpackage`` por ``toolchain`` e clique em Finalizar. O IDE cria o subpacote ``org.myhome.mytoolchain.toolchain`` . |
| |
| [start=13] |
| . Crie um novo arquivo, clicando com o botão direito do mouse no subpacote ``org.myhome.mytoolchain.toolchain`` e selecionando Novo > Arquivo Vazio. Chame o projeto de ``GNU_tuned_flavor.xml`` e clique em Finalizar. |
| |
| Se você não visualizar Arquivo Vazio como uma opção, selecione Outros e, no assistente Novo Arquivo, selecione a categoria Outros e o tipo de arquivo Arquivo Vazio e clique em Próximo. |
| |
| Este arquivo é o descritor de coleção de ferramentas para a nova coleção de ferramentas. |
| |
| |
| [start=14] |
| . Copie e cole o texto seguinte em ``GNU_tuned_flavor.xml`` : |
| |
| [source,xml] |
| ---- |
| |
| <?xml version="1.0" encoding="UTF-8"?> |
| <toolchaindefinition xmlns="https://netbeans.org/ns/cnd-toolchain-definition/1"> |
| <toolchain name="GNU_tuned_flavor" display="GNU_tuned" family="GNU" qmakespec="${os}-g++"/> |
| <platforms stringvalue="linux,sun_intel,sun_sparc"/> |
| </toolchaindefinition> |
| |
| ---- |
| |
| [start=15] |
| . Crie outro arquivo novo, clicando com o botão direito do mouse no subpacote ``org.myhome.mytoolchain.toolchain`` e selecionando Novo > Arquivo Vazio. Chame o projeto de ``GNU_tuned_cpp.xml`` e clique em Próximo. |
| |
| [start=16] |
| . Copie e cole o texto seguinte em ``GNU_tuned_cpp.xml`` : |
| |
| [source,xml] |
| ---- |
| |
| <?xml version="1.0" encoding="UTF-8"?> |
| <toolchaindefinition xmlns="https://netbeans.org/ns/cnd-toolchain-definition/1"> |
| <cpp> |
| <compiler name="g++"/> |
| <development_mode> |
| <fast_build flags=""/> |
| <debug flags="-g3 -gdwarf-2" default="true"/> |
| <performance_debug flags="-g -O"/> |
| <test_coverage flags="-g"/> |
| <diagnosable_release flags="-g -O2"/> |
| <release flags="-O2"/> |
| <performance_release flags="-O3"/> |
| </development_mode> |
| </cpp> |
| </toolchaindefinition> |
| |
| ---- |
| |
| Observe que os flags de depuração estão definidos como -g3 e -gdwarf-2, que são diferentes dos flags definidos na descrição da coleção de ferramentas GNU default. |
| |
| A árvore do projeto deve ter uma aparência semelhante à seguinte: |
| |
| image::images/project.png[title="Árvore do projeto"] |
| |
| As pastas Teste de Unidade talvez não exista. |
| |
| |
| [start=17] |
| . Na janela Projetos, clique com o botão direito do mouse no nó do projeto ``mytoolchain`` e escolha Executar. O módulo é construído e instalado em uma nova instância do IDE, que é a plataforma de destino default dos módulos. A plataforma de destino se abre, de modo que você possa experimentar o novo módulo. |
| |
| [start=18] |
| . No módulo em execução, escolha Ferramentas > Opções, selecione C/C++ na parte superior do painel da janela Opções e selecione a guia Ferramentas de Construção. |
| |
| [start=19] |
| . Se a nova coleção de ferramentas (GNU_tuned) não for exibida, clique em Restaurar Default. Clique em Sim para continuar quando solicitado para verificar novamente seu ambiente. |
| |
| O IDE mostra a nova coleção de ferramentas: |
| |
| image::images/options.png[title="Painel Opções"] |
| |
| [start=20] |
| . Crie um novo projeto C/C++ de amostra ``Bem-Vindo`` selecionando Arquivo > Novo Projeto > Amostras > C/C++ > Bem-Vindo. |
| |
| [start=21] |
| . Clique com o botão direito do mouse no nó do projeto e escolha Propriedades. Na caixa de diálogo Propriedades do Projeto, selecione o nó Construir, defina a Coleção de Ferramentas como a coleção de ferramentas GNU_tuned e clique em OK. |
| |
| [start=22] |
| . Construa o projeto. Observe que o compilador tem os flags ``-g3 -gdwarf-2`` |
| |
| [source,java] |
| ---- |
| |
| g++ -c -g3 -gdwarf-2 -MMD -MP -MF build/Debug/GNU_tuned-Solaris-x86/welcome.o.d -o build/Debug/GNU_tuned-Solaris-x86/welcome.o welcome.cc |
| ---- |
| |
| [start=23] |
| . Na caixa de diálogo Propriedades do Projeto, selecione a coleção de ferramentas GNU e clique em OK. |
| |
| [start=24] |
| . Construa o projeto novamente e compare a linha compilada na janela de saída: |
| |
| [source,java] |
| ---- |
| |
| g++ -c -g -MMD -MP -MF build/Debug/GNU-Solaris-x86/welcome.o.d -o build/Debug/GNU-Solaris-x86/welcome.o welcome.cc |
| ---- |
| |
| Você verá que a coleção de ferramentas GNU_tuned tem diferentes flags do compilador para depuração, Modo de Desenvolvimento para o compilador GNU. |
| |
| Se quiser usar o novo módulo para a coleção de ferramentas GNU_tuned no seu IDE habitual, você pode criar um binário (um arquivo .nbm) e adicioná-lo como um plug-in: |
| |
| 1. Clique com o botão direito do mouse no projeto do módulo mytoolchain e selecione Criar NBM. O arquivo .nbm é criado no subdiretório de construção do projeto, o qual pode ser visto na guia Arquivos. |
| 2. Selecione Ferramentas > Plug-ins e clique na guia Submetido a Download na caixa de diálogo Plug-ins. |
| 3. Clique em Adicionar Plug-ins, vá até o diretório de construção, selecione o módulo do arquivo .nbm e clique em Abrir. O módulo de plug-in é adicionado à lista na guia Submetido a Download. |
| 4. Clique na caixa de seleção para selecionar o módulo na guia Submetido a Download e clique no botão Instalar. O Instalador de Plug-in do NetBeans e aberto. |
| 5. Clique em Próximo para avançar pelo instalador e continuar até que a instalação seja finalizada. |
| 6. Reinicie o IDE, em seguida, escolha Ferramentas > Opções, selecione C/C++ na parte superior do painel da janela Opções e selecione a guia Ferramentas de Construção. |
| 7. Se a nova coleção de ferramentas (GNU_tuned) não for exibida, clique em Restaurar Defaults. Clique em Sim para continuar quando solicitado para verificar novamente seu ambiente. |
| |
| |
| === Detalhes do Arquivo XML da Coleção de Ferramentas |
| |
| Trata-se de uma descrição das tags mais importantes do arquivo xml da coleção de ferramentas. |
| |
| Para obter um esquema de todas as tags e atributos suportados dos arquivos xml de toolchain, você pode pesquisar o arquivo ``toolchaindefinition.xsd`` na link:http://hg.netbeans.org/cnd-main[+árvore do código-fonte do NetBeans IDE+]. |
| |
| |
| ==== Tags de definição da coleção de ferramentas |
| |
| |=== |
| |Tags |Atributos |Descrição |
| |
| |toolchain |Nome da coleção de ferramentas |
| |
| |nome |Nome da coleção de ferramentas |
| |
| |exibição |Nome de exibição da coleção de ferramentas |
| |
| |família |Nome do grupo da coleção de ferramentas |
| |
| |plataformas |Plataformas suportadas |
| |
| |stringvalue |Lista das plataformas suportadas separadas por vírgula. |
| Os valores possíveis são: |
| |
| * linux |
| * unix |
| * sun_intel |
| * sun_sparc |
| * windows |
| * mac |
| * none |
| |
| |
| |makefile_writer |Escritor de makefile personalizado. |
| |
| |classe |Nome da classe do escritor de makefile personalizado. Deve implementar |
| org.netbeans.modules.cnd.makeproject.spi.configurations.MakefileWriter. |
| |
| |drive_letter_prefix |Prefixo especial para nomes de arquivos |
| |
| |stringvalue |"/" para unix |
| "/cygdrive/" para cygwin no Windows |
| |
| |base_folders |Contêiner das tags base_folder. |
| Uma ou mais tags base_folder estão contidas em uma tag base_folders. |
| |
| |base_folder |Descrição do diretório-base dos compiladores. |
| Este tag pode conter as seguintes tags: |
| |
| |regestry |Chave de registro do Windows da ferramenta. Observe que a tag XML deve ser escrita "regestry" embora seja um erro ortográfico. |
| |
| |pattern |Expressão regular que permite que o NetBeans IDE localize o compilador no registro |
| |
| |suffix |Pasta com os arquivos executáveis |
| |
| |path_patern |Expressão regular que permite que o NetBeans IDE localize o compilador examinando os caminhos. Observe que a tag XML deve ser escrita "path_patern" embora seja um erro ortográfico. |
| |
| |command_folders |Contêiner das tags command_folder. |
| Uma ou mais tags commander_folder estão contidas em uma tag command_folders. |
| |
| |command_folder |Descreve o diretório no qual se encontram os comandos do tipo UNIX. |
| Necessários somente para compiladores MinGW no Windows. A tag command_folder pode conter as seguintes tags: |
| |
| |regestry |Chave de comandos de registro do Windows. Observe que a tag XML deve ser escrita "regestry" embora seja um erro ortográfico. |
| |
| |pattern |Expressão regular que permite que o NetBeans IDE localize a pasta de comandos no registro |
| |
| |suffix |Pasta com os arquivos executáveis |
| |
| |path_patern |Expressão regular que permite que o NetBeans IDE localize os comandos. Observe que a tag XML deve ser escrita "path_patern" embora seja um erro ortográfico. |
| |
| |scanner |Nome do serviço de parser de erros, consulte <<errorhandler,Criando um Handler de Erros Personalizado para o Compilador>> |
| |
| |id |Nome do serviço de parser de erros |
| |=== |
| |
| |
| ==== Flags do Compilador |
| |
| Esta tabela lista as tags usadas para descrever os compiladores e especificar os flags do compilador para toolchain. |
| |
| |=== |
| |Tags |Descrição |Exemplo de compilador GNU |
| |
| |c,cpp |O conjunto de flags do compilador está localizado nos subnós a seguir |
| |
| |reconhecedor |Expressão regular que permite que o IDE localize o compilador |Para GNU em cygwin no Windows |
| .*[\\/].*cygwin.*[\\/]bin[\\/]?$ |
| |
| |compilador |Nome do compilador (nome do arquivo executável) |gcc ou g++ |
| |
| |versão |Flag de versão |--version |
| |
| |system_include_paths |Flags para obter caminhos de inclusão do sistema |-x c -E -v |
| |
| |system_macros |Flags para obter as macros do sistema |-x c -E -dM |
| |
| |user_include |Flag para adicionar caminho de inclusão do usuário |-I |
| |
| |user_file |Flag para incluir o conteúdo de _file_ antes de outros arquivos |-include _file_ |
| |
| |user_macro |Flag para adicionar macro do usuário |-D |
| |
| |development_mode |Grupos de flags para diferentes modos de desenvolvimento |
| |
| |warning_level |Grupos de flags para diferentes níveis de advertência |
| |
| |architecture |Grupos de flags para diferente arquitetura |
| |
| |strip |Flag para informações de depuração de faixa |-s |
| |
| |c_standard |Especifica os flags para usar os padrões C. Use com as tags c89, c99 e c11. |c89 flags="-std=c89" |
| c99 flags="-std=c99" |
| c11 flags="-std=c11" |
| |
| |cpp_standard |Especifica os flags para usar os padrões C++. Use com as tags cpp98 e cpp11. |cpp98 flags="-std=c++98" |
| cpp11 flags="-std=c++11" |
| cpp11 flags="-std=gnu++0x" |
| |
| |output_object_file |Flags para especificar o arquivo do objeto |-o _(deve ter o seguinte espaço -o)_ |
| |
| |dependency_generation |Flags de geração de dependência |-MMD -MP -MF $@.d |
| |
| |precompiled_header |Flag do cabeçalho pré-compilado |-o $@ |
| |
| |important_flags |Expressão regular que especifica quais flags do compilador alteram os caminhos de inclusão e as macros predefinidas do sistema padrão para assistência de código |-O1|-O2|-O3|-O4|-O5|-Ofast|-Og|-Os|-ansi|-fPIC|-fPIE|-fasynchronous-unwind-tables|-fbuilding-libgcc|-fexceptions|-ffast-math|-ffinite-math-only|-ffreestanding|-fgnu-tm|-fhandle-exceptions|-fleading-underscore|-fno-exceptions|-fno-rtti|-fnon-call-exceptions|-fnon-call-exceptions|-fopenmp|-fpic|-fpie|-fsanitize=address|-fshort-double|-fshort-wchar|-fsignaling-nans|-fstack-protector(\W|$|-)|-fstack-protector-all|-funsigned-char|-funwind-tables|-g(\W|$|-)|-ggdb|-gsplit-dwarf|-gtoggle|-m128bit-long-double|-m3dnow|-m64|-mabm|-madx|-maes|-march=.*|-mavx|-mavx2|-mbmi|-mbmi2|-mf16c|-mfma(\W|$|-)|-mfma4|-mfsgsbase|-mlong-double-64|-mlwp|-mlzcnt|-mpclmul|-mpopcnt|-mprfchw|-mrdrnd|-mrdseed|-mrtm|-msse3|-msse4(\W|$|-)|-msse4.1|-msse4.2|-msse4a|-msse5|-mssse3|-mtbm|-mtune=.*|-mx32|-mxop|-mxsave|-mxsaveopt|-pthreads|-std=.*|-xc($|\+\+$) |
| |
| |multithreading |Grupos de flags de suporte a multithreading |Só para a coleção de ferramentas do Oracle Solaris Studio; não usado para as coleções de ferramentas com base em GNU |
| |
| |standard |Grupos de flags para diferentes padrões de linguagem |Só para a coleção de ferramentas do Oracle Solaris Studio; não usado para as coleções de ferramentas com base em GNU |
| |
| |language_extension |Grupos de flags para diferentes extensões de linguagem |Só para a coleção de ferramentas do Oracle Solaris Studio; não usado para as coleções de ferramentas com base em GNU |
| |=== |
| |
| |
| == Criando um Provedor de Compilador Personalizado |
| |
| O NetBeans IDE possui um provedor de compilador default: |
| org.netbeans.modules.cnd.toolchain.compilers.MakeProjectCompilerProvider |
| Este provedor funciona bastante bem na maioria dos toolchains, mas você pode criar seu próprio provedor. |
| |
| *Para criar seu próprio provedor de compilador:* |
| |
| * amplie a classe abstrata org.netbeans.modules.cnd.api.compilers.CompilerProvider |
| * defina a classe como serviço e coloque-a antes do provedor default: |
| |
| [source,java] |
| ---- |
| |
| @org.openide.util.lookup.ServiceProvider(service = org.netbeans.modules.cnd.spi.toolchain.CompilerProvider.class, |
| position=500) |
| public class CustomCompilerProvider extends CompilerProvider { |
| ... |
| } |
| |
| ---- |
| O atributo position=500 garante que o provedor personalizado será chamado antes do provedor default. O provedor personalizado deveria retornar "Tool" não-nula no método "createCompiler()" para a ferramenta que deveria ser substituída. |
| |
| |
| == Criando um Handler de Erros Personalizado para o Compilador |
| |
| O NetBeans IDE possui dois handlers de erros do compilador default. |
| |
| * para compilador GNU |
| * para compilador Sun Studio |
| |
| O handler do compilador GNU funciona bastante bem em qualquer compilador GNU, mas, se quiser, pode definir seus próprios handlers de erros do compilador. |
| |
| *Para criar seu próprio handler de erro do compilador: * |
| |
| * estenda a classe abstrata org.netbeans.modules.cnd.api.compilers.CompilerProvider |
| * defina a classe como serviço: |
| |
| [source,java] |
| ---- |
| |
| @org.openide.util.lookup.ServiceProvider(service = org.netbeans.modules.cnd.spi.toolchain.CompilerProvider.class) |
| public class CustomCompilerProvider extends ErrorParserProvider { |
| ... |
| @Override |
| public String getID() { |
| return "MyParser"; // NOI18N |
| } |
| } |
| ---- |
| * vincule o scanner de erros e a descrição da coleção de ferramentas usando o ID: |
| |
| [source,xml] |
| ---- |
| |
| </scanner id="MyParser"> |
| ... |
| </scanner> |
| ---- |
| |
| |
| == Consulte Também |
| |
| Consulte a link:https://netbeans.org/kb/trails/cnd.html[+Trilha do Aprendizado C/C+++] para obter mais artigos sobre o desenvolvimento com C/C++/Fortran no NetBeans IDE. |
| |
| link:mailto:users@cnd.netbeans.org?subject=Feedback:Using%20the%20C/C++%20Tool%20Collection%20Descriptors%20-%20NetBeans%20IDE%208.0%20Tutorial[+Enviar Feedback neste Tutorial+] |
| |
| |