コンパイラ・ライブラリのインストール
コンパイラ
コンパイラはC用にgcc、C++用にg++が必要です。 すでにインストールされているか確認します。
 pi@raspberrypi:~ $ gcc -dumpversion  
4.9.2
pi@raspberrypi:~ $ g++ -dumpversion  
4.9.2
pi@raspberrypi:~ $
すでにインストールされています。

ライブラリ
 pi@raspberrypi:~ $sudo find / -name "gtk*"  
gtk-2.0とgtk-3.0がインストールされているようです。これでCでX-Windowのソフトは開発できます。 しかし、C++を使ったgtkmmで開発したほうがコードの量が少なく効率的なのでgtkmmのライブラリがインストールされている確認します。
 pi@raspberrypi:~ $sudo find / -name "gtkmm*"  
インストールされていませんでした。
gtkmmの3.0はうまく動かず、2.4でOKだったので2.4をインストールします。インストールの方法は、
[メニュー]-[設定]-[add/remove Software]
で行いました。

gtkmm-2.4で検索して表示された項目にチェックをいれて[Apply]ボタンをクリックするだけでOKです。

wiringPi
wiringPiはIOをアクセスするために必須なのでインストールします。
pi@raspberrypi:~ $ sudo apt-get install libi2c-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  libi2c-dev
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
10.5 kB のアーカイブを取得する必要があります。
この操作後に追加で 52.2 kB のディスク容量が消費されます。
取得:1 http://archive.raspberrypi.org/debian/ jessie/main libi2c-dev all 3.1.1+svn-2 [10.5 kB]
10.5 kB を 0秒 で取得しました (13.1 kB/s)                                      
以前に未選択のパッケージ libi2c-dev を選択しています。
(データベースを読み込んでいます ... 現在 121691 個のファイルとディレクトリがインストールされています。)
.../libi2c-dev_3.1.1+svn-2_all.deb を展開する準備をしています ...
'libi2c-dev による /usr/include/linux/i2c-dev.h から /usr/include/linux/i2c-dev.h.kernel への退避 (divert)' を追加しています
libi2c-dev (3.1.1+svn-2) を展開しています...
libi2c-dev (3.1.1+svn-2) を設定しています ...
pi@raspberrypi:~ $ git clone git://git.drogon.net/wiringPi
Cloning into 'wiringPi'...
remote: Counting objects: 1151, done.
remote: Compressing objects: 100% (957/957), done.
remote: Total 1151 (delta 803), reused 212 (delta 142)
Receiving objects: 100% (1151/1151), 365.24 KiB | 127.00 KiB/s, done.
Resolving deltas: 100% (803/803), done.
Checking connectivity... done.
pi@raspberrypi:~ $ cd wiringPi
pi@raspberrypi:~/wiringPi $ ./build
wiringPi Build script
=====================


WiringPi Library
[UnInstall]
[Compile] wiringPi.c
[Compile] wiringSerial.c
[Compile] wiringShift.c
[Compile] piHiPri.c
[Compile] piThread.c
[Compile] wiringPiSPI.c
[Compile] wiringPiI2C.c
[Compile] softPwm.c
wiringPi.c:1247:21: warning: ‘digitalRead8Dummy’ defined but not used [-Wunused-function]
 static unsigned int digitalRead8Dummy        (UNU struct wiringPiNodeStruct *node, UNU int UNU pin)            { return 0 ; }
                     ^
wiringPi.c:1248:21: warning: ‘digitalWrite8Dummy’ defined but not used [-Wunused-function]
 static         void digitalWrite8Dummy       (UNU struct wiringPiNodeStruct *node, UNU int pin, UNU int value) { return ; }
                     ^
[Compile] softTone.c
[Compile] mcp23008.c
[Compile] mcp23016.c
[Compile] mcp23017.c
[Compile] mcp23s08.c
[Compile] mcp23s17.c
[Compile] sr595.c
[Compile] pcf8574.c
[Compile] pcf8591.c
[Compile] mcp3002.c
[Compile] mcp3004.c
[Compile] mcp4802.c
[Compile] mcp3422.c
[Compile] max31855.c
[Compile] max5322.c
[Compile] ads1115.c
[Compile] sn3218.c
[Compile] bmp180.c
[Compile] htu21d.c
[Compile] ds18b20.c
[Compile] rht03.c
[Compile] drcSerial.c
[Compile] drcNet.c
[Compile] pseudoPins.c
[Compile] wpiExtensions.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

WiringPi Devices Library
[UnInstall]
[Compile] ds1302.c
[Compile] piNes.c
[Compile] maxdetect.c
[Compile] piFace.c
[Compile] gertboard.c
[Compile] lcd128x64.c
[Compile] lcd.c
[Compile] scrollPhat.c
[Compile] piGlow.c
[Link (Dynamic)]
[Install Headers]
[Install Dynamic Lib]

GPIO Utility
[Compile] gpio.c
[Compile] pins.c
[Compile] readall.c
[Link]
[Install]

All Done.

NOTE: To compile programs with wiringPi, you need to add:
    -lwiringPi
  to your compile line(s) To use the Gertboard, MaxDetect, etc.
  code (the devLib), you need to also add:
    -lwiringPiDev
  to your compile line(s).

pi@raspberrypi:~/wiringPi $ gpio -v
gpio version: 2.44
Copyright (c) 2012-2017 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty

Raspberry Pi Details:
  Type: Pi 3, Revision: 02, Memory: 1024MB, Maker: Embest 
  * Device tree is enabled.
  *--> Raspberry Pi 3 Model B Rev 1.2
  * This Raspberry Pi supports user-level GPIO access.
目次へ