・Raspberry Pi Noobsで簡単リモートデスクトップ
・WiringPiのセットアップ・・・C言語でGPIOを動かしてみる
・Pythonのセットアップ・・・人気のPythonで動かしてみる
・WebからPHPで簡単アクセス・・・PHP、Pythonで遠隔GPIO
以下、昔の記事です。
前回まではC言語でいろいろこなしてみました。
ラズベリーパイにはC言語以外にもC++が対応しています。基本的にはgccをg++と書けば動きます。
C++の簡単な使い方と wiringPi のC言語とC++を組み合わせたコンパイル方法を試してみます。
(MCU GearのLPC1114はC言語ですが、それ以外はC言語とC++を組み合わせた形で書かれています。)
まずはGeanyを使わない形でコンパイルしてみます。
テストプログラムは三つのファイルを用意します。
1、【MyTest.h】
class MyTest{//クラスの宣言
public:
int getData(void);//クラスの関数
};
2、【MyTest.cpp】
#include "MyTest.h"
int MyTest::getData(void){//クラスで定義された実際の関数の中身
return 9;
}
#include <stdio.h>
#include "MyTest.h"
int main(void){
MyTest maintest;//MyTestクラスのインスタンス生成
//maintestという中にgetData()という関数が隠れていると考えると分かりやすい。
//インスタンスが実体でクラス宣言した中身を利用できるようになる。
int data = maintest.getData();//MyTestクラスのgetData()関数を呼び出して値を保存
//インスタンスの中身をいじるときは(インスタンス.クラスの中身)
printf("getData = %d\n",data);
}
これら三つのファイルを作り、一つのフォルダに入れます。
フォルダに入れたら.oファイルをコンパイルして作り、最後にビルドして実行ファイルを作ります。
ターミナルでls、cdコマンドを利用し移動して次の様なコマンドを入れます。
g++ -c MyTest.cpp -o Mytest.o
g++ -c cpptest.c -o cpptest.o
g++ cpptest.o MyTest.o -o cpptest
./cpptest
最後にgetData = 9
と出ていれば成功です。
次はGeanyの設定をしてみましょう。
ビルドコマンドを設定します。
gccと書いてあるところをg++にしておくと、とりあえず一つ一つのファイルをコンパイルして.oファイルを作れるようになります。
次にmakefileを作ってみましょう。
cpptest : cpptest.o MyTest.o
g++ -Wall cpptest.o MyTest.o -o cpptest
clean:
rm -f *.o cpptest
と記述すると、プログラムを書き変えてもすぐにビルドボタン、実行ボタンで動くようになります。
#include "MyTest.h"
int main(void){
MyTest maintest;
int data = maintest.getData();
printf("getData = %d\n",data);
を加えてみましょう。
そして同じフォルダにMyTest.cpp とMyTest.h を入れてみましょう。
ターミナルを開いて
g++ -Wall -o blink.c MyTest.cpp -lwiringPi
sudo ./blink
と実行すればC++もC言語も動きます。
次回はMCU Gearがつながるかを検証してみます。
0 件のコメント:
コメントを投稿