NetBeans8でMakefileをmakeする

2015-03-01

旧ブログ

t f B! P L

linuxBean(23)NetBeans8のインストールでJavaSE版をインストールしましたがMakefileをNetBeans8からmakeするためにC/C++プラグインを追加でインストールします。

NetBeans8からmakeが使えるようにC/C++プラグインをインストールする


NetBeansのファイルウィンドウからmakeを実行できるようにC/C++プラグインをインストールします。

NetBeansでツール→プラグイン。


「使用可能なプラグイン」タブを選択して「検索」の欄に「C++」と入力します。

でてきたC/C++プラグインにチェックをつけて「インストール」ボタンをクリックすると必要なファイルをダウンロードしてインストールしてくれます。


インストールが完了するとMakefileのアイコンが変化しています。

Components_Thumbsプロジェクトの中に新しいMakefileを作ってみます。


プロジェクトウィンドウでComponents_Thumbsプロジェクトを右クリック→新規→その他。

(2回目からは「空のファイル」がこの階層にでてくるようになりました。)


「カテゴリ」:その他→「ファイル・タイプ」:空のファイル。


ファイルウィンドウで右クリックしてmakeするためにはここで入力する「ファイル名」が重要です。

ファイル名に「Makefile」を含むか、拡張子を「mk」にしておかないといけません。


Components_Thumbsフォルダ内にmyMakefileができてMakefileのアイコンになっていますね。

このアイコンのファイルを右クリックするとLibreOffice(68)Writing UNO componentsのThumbs Exampleその4でやったようにmakeを実行できるようになります。

タブをスペースに展開されないように設定する


myMakefile:51: *** 分離記号を欠いています (8 個の空白でしたが, TAB のつもりでしたか?).  中止.

MAKE FAILED (終了値2, 合計時間: 62ms)

さっそくmakeを実行してみようとするとこんないまいましいエラーがでてきます。

わかっているのなら直してくれたらよいのに、、、

これはデフォルトではNetBeans8ではタブが自動的に空白に変換される設定になっているからです。

試しにタブキーでタブを入力した後矢印キーでカーソルを動かすとタブに相当する空白分カーソルが移動することからそれはタブではなく空白になっていることがわかります。

NetBeans8のメニューからツール→オプション。

エディタを選択してフォーマットタブを選択します。


「タブをスペースに展開」のチェックをはずします。

これで設定完了と思ったら間違いでした。

ここの「インデントのスペース数」と「タブのサイズ」の数字を意識していないといけません。

デフォルトの「インデントのスペース数」が4、「タブのサイズ」が8のときは、タブキーを押して8のサイズに達するまではインデントのスペースとして扱われてしまいます。

ですので「インデントのスペース数」が4、「タブのサイズ」が8と設定している場合に「空白」でなく「タブ」にしたいときはタブキーを2回押さなければタブになりません。

「インデントのスペース数」と「タブのサイズ」を同じ4にしておきば、タブキーを1回押すだけでタブが入力されるようになります、、、、と思ったらそうなりませんね。

私の環境では「タブのサイズ」を4にしてもタブキーを2回押さないとタブになりません。

タブなのかスペースなのか明示的に確認する方法


タブなのかスペースなのかいちいち矢印キーで確認するのは大変なのでひと目で区別できるようにします。

メニューの表示。


「表示不可能な文字を表示」にチェックを入れます。


タブになっているところは「→」、スペースになっているところは「・」で表示されています。

66行目と67行目の行頭がスペースになっているのがひと目でわかりますね。

改行文字も表示されますので、変数の代入の行末にまぎれているスペースも発見しやすいですね。

参考にしたサイト


GNU make 日本語訳(Coop編) - Makefile入門
ルールのコマンドの行頭は必ずタブでなければなりません。

俺のネタ帳: NetBeans インデントタブで空白文字を入れない方法
「タブのサイズ」と「インデントの空白文字数」の違いを知らないといけません。

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ