C/C++ツール・コレクション・ディスクリプタの使用 - NetBeans IDEチュートリアル

目次

このページの内容は、NetBeans IDE 8.0に適用されます

このチュートリアルに従うには、次のソフトウェアが必要です。

ソフトウェア 必須バージョン
NetBeans IDE (C/C++のサポートを含む) バージョン8.0
Java Development Kit (JDK) バージョン7または8

必要なソフトウェアのダウンロードとインストールについては、NetBeans IDEのインストール手順およびC/C++/Fortran向けのNetBeans IDEの構成を参照してください。

概要

このチュートリアルでは、NetBeans IDE 8.0で既存のツール・コレクションを編集する方法と、既存のツール・コレクションのカスタム・バージョンを作成する方法を示します。

ここで示す例はOracle SolarisおよびLinuxのGNUツール・コレクションに適用されますが、この概念はWindowsおよびMacにも適用されます。この情報を使用して、次の操作の方法を学習できます。

  • IDEでC/C++ファイルをコンパイルするときにデフォルトで使用されるコンパイラ・フラグの変更
  • IDEでサポートされていないコンパイラの追加

ツール・コレクション

ツール・コレクションは、コンパイラ、makeユーティリティおよびデバッガのセットで、ツール・コレクション・ディスクリプタによってIDEで指定されます。コードのコンパイル、makeまたはデバッグを行うたびに、プロジェクトで使用するように構成されているツール・コレクションに対する、ツール・コレクション・ディスクリプタに記述された実行可能ファイルをIDEは実行します。コード支援機能では、ツール・コレクション・ディスクリプタから取得したインクルード・パスとマクロが使用されます。

ツール・コレクション・ディスクリプタは、フォルダorg/netbeans/modules/cnd/toolchain/resources/toolchaindefinition/内のモジュールIDE_HOME/cnd/modules/org-netbeans-modules-cnd-toolchain.jarにあるXMLファイルです。これらの元のIDEツール・ディスクリプタXMLファイルは編集しないでください。

この記事では、編集可能なツール・ディスクリプタの複製ファイルをNetBeansユーザー・ディレクトリ内に作成する方法について説明します。IDEでは、元のバージョンのかわりに、ユーザー・ディレクトリ内にあるツール・コレクション・ディスクリプタの情報が使用されるようになります。

コミュニティ貢献ツール・コレクション

ツール・コレクションの一部のプラグインは、NetBeansコミュニティ内のユーザーによって提供されています。

これらのプラグインは正式にサポートされていませんが、独自のプラグインの作成に役立つ場合は、ここで参照されます。

Windowsユーザーには、NetBeansコミュニティのユーザーによる次の記事も役立つ場合があります: NetBeans Setup and GNU Cross-Toolchain Configuration for ARM Development

ツール・コレクション・ディスクリプタの編集

NetBeans IDEにはディスクリプタを編集するGUIがないため、ツール・コレクション・ディスクリプタを編集するには多少のコツが必要です。この項では、IDEによるツールの使用方法を変更するために編集可能な、ツール・コレクション・ディスクリプタの「シャドウ」の複製コピーを作成する方法について説明します。

  1. IDEが実行中の場合は終了します。
  2. ファイルIDE-HOME/etc/netbeans.confを編集します。IDE-HOMEはNetBeansインストール・ディレクトリを表します。
  3. 次のフラグをnetbeans_default_optionsエントリに追加します。
    -J-Dcnd.toolchain.personality.create_shadow=true
  4. IDEを起動して「ツール」>「オプション」を選択し、「オプション」ウィンドウの上のペインで「C/C++」を選択します。

    ツール・コレクション・ディスクリプタの「シャドウ」バージョンが含まれるディレクトリがNetBeansユーザー・ディレクトリ内に作成されます。

    userdir/config/CND/ToolChain

    NetBeansユーザー・ディレクトリの場所は、使用しているオペレーティング・システムによって変わります。userdir/config/CND/ToolChainディレクトリの場所の例を次に示します。

    • 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およびSolaris: /home/username/.netbeans/version/config/CND/ToolChain

    作成されたディスクリプタのリストは、次のようになります。

    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
    

    使用しているtoolchainのディスクリプタを編集できます。たとえば、SolarisでGNUを使用している場合はGNU_solaris.xmlファイルを編集し、WindowsでMinGWを使用している場合はMinGW.xmlファイルを編集する必要があります。

    これらのディスクリプタXMLファイルで使用されるタグの詳細は、ツール・コレクションXMLファイルの詳細を参照してください。タグの値を変更することで、IDEでのツールの動作を変更できます。

    このディレクトリのディスクリプタは、IDE-HOMEディレクトリ内の正式バージョンよりも優先されます。IDEで使用しないユーザー・ディレクトリ内のツール・ディスクリプタは削除する必要があります。

  5. -J-Dcnd.toolchain.personality.create_shadow=trueフラグをIDE-HOME/etc/netbeans.confから削除して、IDEがシャドウ・ディスクリプタを再度作成しないようにします。
  6. 変更作業が終了したら、変更されたツール・ディスクリプタが使用されるようにするため、IDEを再起動します。

カスタム・ツール・コレクションの作成

この項では、デバッグ用にコンパイラ・フラグを一部変更した、GNUツール・コレクションに基づくツール・コレクションを作成する方法について説明します。この例では、新規ツール・コレクションが含まれる新規NetBeansモジュールを作成するための手順が示されます。これによってツール・コレクションを共有、またはIDEの別のインスタンスで使用することが可能になります。

NetBeansモジュール作成の概要については、NetBeansプラグインのクイック・スタートを参照してください。


カスタム・ツール・コレクションを作成するには:
  1. NetBeansインストールにNetBeansプラグイン開発モジュールが含まれていることを確認してください。

    「ツール」>「プラグイン」と選択して、「インストール済み」タブをクリックします。NetBeansプラグイン開発モジュールがインストールされていない場合は、「使用可能なプラグイン」タブをクリックして、モジュールをインストールします。検索ボックスに「プラグイン」と入力すると、すばやく探すことができます。
  2. 「ファイル」>「新規プロジェクト」を選択して、新規NetBeansモジュールを作成します。新規プロジェクト・ウィザードのプロジェクトを選択ページで、ウィザードの最初のステップとして、カテゴリに「NetBeansモジュール」、プロジェクトに「モジュール」を選択します。「次」をクリックします。
  3. 名前と場所ページで、プロジェクト名を入力し(「mytoolchain」など)、その他のフィールドはそのままにします。「次」をクリックします。
  4. 「基本モジュール構成」ページで、「コード名ベース」にorg.myhome.mytoolchainと入力します。これは、作成中のモジュールを識別する一意の文字列を定義します。コード名ベースは、モジュールのメイン・パッケージとしても使用されます。
  5. OSGiではなくデフォルトのNetBeansモジュール・システムを使用することになるため、「OSGiバンドルを生成」チェックボックスは選択しないでください。
  6. 「終了」をクリックします。IDEではmytoolchainという新規プロジェクトが作成されます。
  7. 「プロジェクト」タブで、mytoolchainプロジェクト・ノードを右クリックし、「新規」>「その他」を選択します。
  8. 新規ファイル・ウィザードで、カテゴリ「モジュールの開発」およびファイル・タイプ「XMLレイヤー」を選択してから、「次」をクリックして「終了」をクリックします。

    IDEでは、メイン・パッケージorg.myhome.mytoolchain内のソース・パッケージ・ノードの下にlayer.xmlが作成され、エディタでlayer.xmlが開かれます。
  9. ファイルに<filesystem/>タグが含まれている場合は、そのタグを開始および終了のfilesystemタグに置き換えます。
    <filesystem>
    
    </filesystem>
  10. filesystemタグ内に、layer.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>
        
  11. Bundle.propertiesファイルを開き、次の文字列を追加します。
    CND/ToolChains/GNU_tuned=My GNU Tuned Tool Collection
  12. ソース・パッケージの下のorg.myhome.mytoolchainパッケージを右クリックし、「新規」>「Javaパッケージ」を選択してサブパッケージtoolchainを作成します。デフォルト・パッケージ名のnewpackagetoolchainに置き換えて、「終了」をクリックします。IDEではサブパッケージorg.myhome.mytoolchain.toolchainが作成されます。
  13. org.myhome.mytoolchain.toolchainサブパッケージを右クリックして「新規」>「空のファイル」を選択することで、新規ファイルを作成します。ファイルにGNU_tuned_flavor.xmlという名前を付けて、「終了」をクリックします。

    「空のファイル」がオプションとして表示されない場合、「その他」を選択してから新規ファイル・ウィザードで、カテゴリ「その他」およびファイル・タイプ「空のファイル」を選択して「次」をクリックします。

    このファイルは、新規ツール・コレクションのツール・コレクション・ディスクリプタです。

  14. GNU_tuned_flavor.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>
    
  15. org.myhome.mytoolchain.toolchainサブパッケージを右クリックして「新規」>「空のファイル」を選択することで、別のファイルを作成します。ファイルにGNU_tuned_cpp.xmlという名前を付けて、「次」をクリックします。
  16. GNU_tuned_cpp.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>
    

    デバッグ・フラグは、デフォルトのGNUツール・コレクションの記述に設定されているフラグと異なり、-g3および -gdwarf-2に設定されています。

    プロジェクト・ツリーは次のようになります。

    プロジェクト・ツリーのスクリーンショット

    「単体テスト」フォルダが存在しない場合があります。

  17. 「プロジェクト」ウィンドウで、「mytoolchain」プロジェクト・ノードを右クリックし、「実行」を選択します。モジュールがビルドされ、IDEの新しいインスタンス(モジュールのデフォルト・ターゲット・プラットフォーム)にインストールされます。ターゲット・プラットフォームが開き、新規モジュールを試すことができます。
  18. 実行中のモジュールで、「ツール」>「オプション」を選択し、「オプション」ウィンドウの上ペインで「C/C++」を選択して、「ビルド・ツール」タブを選択します。
  19. 新規ツール・コレクション(GNU_tuned)が表示されない場合は、「デフォルトに戻す」をクリックします。環境を再スキャンするように求められた場合、「はい」をクリックして続行します。

    新規ツール・コレクションが表示されます。

    「オプション」ウィンドウのスクリーンショット
  20. 「ファイル」>「新規プロジェクト」>「サンプル」>「C/C++」>「Welcome」を選択して、新規C/C++サンプル・プロジェクトWelcomeを作成します。
  21. プロジェクト・ノードを右クリックし、「プロパティ」を選択します。「プロジェクト・プロパティ」ダイアログ・ボックスで「ビルド」ノードを選択し、「ツール・コレクション」をGNU_tunedツール・コレクションに設定して、「OK」をクリックします。
  22. プロジェクトをビルドします。コンパイラに-g3 -gdwarf-2というフラグがあります。
    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
  23. 「プロジェクト・プロパティ」ダイアログ・ボックスでGNUツール・コレクションを選択して、「OK」をクリックします。
  24. プロジェクトを再ビルドし、「出力」ウィンドウでコンパイル行を比較します。
    g++ -c -g -MMD -MP -MF build/Debug/GNU-Solaris-x86/welcome.o.d -o build/Debug/GNU-Solaris-x86/welcome.o welcome.cc

GNU_tunedツール・コレクションにはデバッグ用の異なるコンパイラ・フラグ、GNUコンパイラの開発モードがあることを参照できる必要があります。

通常のIDEでGNU_tunedツール・コレクション用の新規モジュールを使用する場合は、バイナリ(..nbmファイル)を作成してプラグインとして追加できます。

  1. mytoolchainモジュール・プロジェクトを右クリックして「NBMを作成」を選択します。「ファイル」タブで、プロジェクトのbuildサブディレクトリを確認すると、.nbmファイルが作成されています。
  2. 「ツール」>「プラグイン」を選択し、「プラグイン」ダイアログ・ボックスで「ダウンロード済」タブをクリックします。
  3. 「プラグインの追加」をクリックして、buildディレクトリに移動し、モジュール .nbmファイルを選択して「開く」をクリックします。プラグイン・モジュールが「ダウンロード済」タブの一覧に追加されます。
  4. 「ダウンロード済」タブでチェックボックスをクリックしてモジュールを選択し、「インストール」ボタンをクリックします。NetBeansプラグイン・インストーラが開きます。
  5. 「次」をクリックして、インストールが終了するまで、インストーラ画面を先に進めます。
  6. IDEを再起動して「ツール」>「オプション」を選択し、「オプション」ウィンドウの上ペインで「C/C++」を選択して、「ビルド・ツール」タブを選択します。
  7. 新規ツール・コレクション(GNU_tuned)が表示されない場合は、「デフォルトに戻す」をクリックします。環境を再スキャンするように求められた場合、「はい」をクリックして続行します。

ツール・コレクションXMLファイルの詳細

ここでは、ツール・コレクションXMLファイルで最も重要なタグについて説明します。

ツールチェーンXMLファイルでサポートされるすべてのタグと属性のスキームについては、NetBeans IDEのソース・ツリー内にあるファイルtoolchaindefinition.xsdを検索できます。

ツール・コレクション定義タグ

タグ 属性 説明
toolchain ツール・コレクションの名前
name ツール・コレクションの名前
display ツール・コレクションの表示名
family ツール・コレクションのグループ名
platforms サポート対象のプラットフォーム
stringvalue サポート対象プラットフォームのカンマ区切りのリスト。
可能な値は次のとおりです。
  • linux
  • unix
  • sun_intel
  • sun_sparc
  • windows
  • mac
  • none
makefile_writer カスタムMakefileライター。
class カスタムMakefileライターのクラス名。org.netbeans.modules.cnd.makeproject.spi.configurations.MakefileWriter
を実装しています。
drive_letter_prefix ファイル名の特別な接頭辞
stringvalue UNIXの場合は、「/」
Windowsのcygwinの場合は、「/cygdrive/」
base_folders base_folderタグのコンテナ。
1つのbase_foldersタグには1つ以上のbase_folderタグが含まれています。
base_folder コンパイラのベース・ディレクトリの説明。
このタグには、次のタグを含めることができます。
regestry ツールのWindowsレジストリ・キー。これはミススペルですが、XMLタグには「regestry」と記述する必要があります。
pattern NetBeans IDEがレジストリ内のコンパイラを検索できるようにする正規表現
suffix 実行可能ファイルを含むフォルダ
path_patern NetBeans IDEがパスをスキャンしてコンパイラを検索できるようにする正規表現。これはミススペルですが、XMLタグには「path_patern」と記述する必要があります。
command_folders command_folderタグのコンテナ。
1つのcommand_foldersタグには1つ以上のcommander_folderタグが含まれています。
command_folder UNIX系のコマンドが格納されているディレクトリを記述。
Windows上のMinGWコンパイラにのみ必要。command_folderタグには、次のタグを含めることができます。
regestry コマンドのWindowsレジストリ・キー。これはミススペルですが、XMLタグには「regestry」と記述する必要があります。
pattern NetBeans IDEがレジストリ内のコマンド・フォルダを検索できるようにする正規表現
suffix 実行可能ファイルを含むフォルダ
path_patern NetBeans IDEがコマンドを検索できるようにする正規表現。これはミススペルですが、XMLタグには「path_patern」と記述する必要があります。
scanner エラー・パーサー・サービスの名前。カスタム・コンパイラのエラー・ハンドラの作成を参照してください。
id エラー・パーサー・サービスの名前

コンパイラ・フラグ

この表では、コンパイラの記述とツールチェーンのコンパイラ・フラグの指定に使用されるタグの一覧を示します。

タグ 説明 GNUコンパイラの例
c,cpp 次のサブノードに配置されているコンパイラ・フラグのセット
recognizer IDEでコンパイラを検索できるようにする正規表現 Windowsのcygwin下のGNU用
.*[\\/].*cygwin.*[\\/]bin[\\/]?$
compiler コンパイラ名(実行可能ファイルの名前) gccまたはg++
version バージョン・フラグ --version
system_include_paths システム・インクルード・パスを取得するフラグ -x c -E -v
system_macros システム・マクロを取得するフラグ -x c -E -dM
user_include ユーザー・インクルード・パスを追加するフラグ -I
user_file fileのコンテンツを他のファイルの前に入れるフラグ -include file
user_macro ユーザー・マクロを追加するフラグ -D
development_mode 各種開発モードのフラグのグループ
warning_level 各種警告レベルのフラグのグループ
architecture 各種アーキテクチャのフラグのグループ
strip デバッグ情報を取り除くフラグ -s
c_standard C標準で使用するフラグを指定します。c89タグ、c99およびc11タグとともに使用します。 c89 flags="-std=c89"
c99 flags="-std=c99"
c11 flags="-std=c11"
cpp_standard C++標準で使用するフラグを指定します。cpp98タグおよびcpp11タグとともに使用します。 cpp98 flags="-std=c++98"
cpp11 flags="-std=c++11"
cpp11 flags="-std=gnu++0x"
output_object_file オブジェクト・ファイルを指定するフラグ -o (-oの後ろのスペースが必要です)
dependency_generation 依存性生成のフラグ -MMD -MP -MF $@.d
precompiled_header 再コンパイルされたヘッダーのフラグ -o $@
important_flags デフォルト・システムのインクルード・パスおよびコード支援用の事前定義マクロを変更するコンパイラ・フラグを指定する正規表現 -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 マルチスレッドのサポートのフラグのグループ Oracle Solaris Studioツール・コレクションのみに適用され、GNUベースのツール・コレクションでは使用されない
standard 各種言語標準のフラグのグループ Oracle Solaris Studioツール・コレクションのみに適用され、GNUベースのツール・コレクションでは使用されない
language_extension 各種言語拡張のフラグのグループ Oracle Solaris Studioツール・コレクションのみに適用され、GNUベースのツール・コレクションでは使用されない

カスタム・コンパイラ・プロバイダの作成

NetBeans IDEには、次のデフォルトのコンパイラ・プロバイダがあります。
org.netbeans.modules.cnd.toolchain.compilers.MakeProjectCompilerProvider
このプロバイダは、ほとんどのtoolchainで適切に動作しますが、独自のプロバイダを作成することもできます。

独自のコンパイラ・プロバイダを作成するには:

  • 抽象クラスorg.netbeans.modules.cnd.api.compilers.CompilerProviderを拡張します。
  • 次のように、クラスをサービスとして定義し、デフォルト・プロバイダの前に挿入します。
    @org.openide.util.lookup.ServiceProvider(service = org.netbeans.modules.cnd.spi.toolchain.CompilerProvider.class,
    position=500)
    public class CustomCompilerProvider extends CompilerProvider {
    ...
    }
    
    position=500属性は、カスタム・プロバイダがデフォルト・プロバイダの前に呼び出されることを保証します。カスタム・プロバイダは、「createCompiler()」メソッドで、ツールのオーバーライド用にNULLでない「Tool」を返す必要があります。

カスタム・コンパイラのエラー・ハンドラの作成

NetBeans IDEには、デフォルトのコンパイラ・エラー・ハンドラが2つあります。

  • GNUコンパイラ用
  • Sun Studioコンパイラ用

GNUコンパイラ・ハンドラは、どのようなGNUコンパイラに対しても適切に動作しますが、必要に応じて独自のコンパイラ・エラー・ハンドラを定義することもできます。

独自のコンパイラ・エラー・ハンドラを作成するには:

  • 抽象クラスorg.netbeans.modules.cnd.spi.toolchain.CompilerProviderを拡張します
  • クラスをサービスとして定義します:
    @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
              }
          }
  • エラー・スキャナとツール・コレクションの記述を、IDでリンクします:
    </scanner id="MyParser">
    ...
      </scanner>

関連項目

NetBeans IDEでのC/C++/Fortranを使用した開発に関する詳細な記事は、C/C++の学習を参照してください。


get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2013, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo