Raspberry Piでこれ↓をやってみました。半分くらいおんなじです。
- Visual Studio 2015で、LinuxのHelloWorldデバッグ(MIDebugEngine使用)
- Visual Studio 2015 へ MIEngineのインストール
- こんなかんじ。
/lib/arm-linux-gnueabihf/libc.so.6
とかでてます。
準備
RaspberryPi側
- Raspbian Jessie (2015-09-24)使用
-
rpi-update
とか 適当に -
openssh-server
はデフォで有効 - sambaのインストールと設定をする
samba 簡単設定 (セキュリティが...)
- インストール
sudo apt-get install samba
- 設定
sudo nano /etc/samba/smb.conf
ファイルの最後に以下を追加
[pi]
path = /home/pi
read only = No
guest ok = Yes
force user = pi
- 保存:
CTRL+O [Enter] CTRL+X
- サービス restart:
sudo service smbd restart
- Windowsのエクスプローラから、
\\raspberrypi\pi
を開いてみる。/home/pi
がみれる
Windows
- Visual Studio 2015
- MIDebugEngine (関連記事 : Visual Studio 2015 へ MIEngineのインストール )
- PuTTY
- Raspberry piの
/home/pi
をJ:\
にマウント - エクスプローラで、
\\raspberrypi
を開く -
pi
フォルダで、右クリック、ネットワークドライブの割り当て(M)...
PUTTYGEN.EXE
で鍵生成
- SSH-2 RSA , 2048bitで [Generate]ボタンを押して、ウィンドウの上でマウスをぐりぐり動かす
-
[Save private key]
で、パスフレーズなしでいいかの確認は、[はい(Y)]
で、適当に名前を付けて、保存。ほかの人には秘密だよ! - PUTTYGEN.EXEはまだ 閉じない (閉じちゃったら、
[Load]
すればいい) - PuTTYでRaspberry Piにログイン。ユーザpi、パスraspberry
mkdir .ssh; chmod 700 .ssh; touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
- PUTTYGENから、
Public key for pasting into OpenSSH authorized_keys file:
の下の枠のテキストをコピー。 -
cat >> .ssh/authorized_keys
として、ペースト。Enter
おして、CTRL+D
raspberrypi-console
pi@raspberrypi ~ $ mkdir .ssh; chmod 700 .ssh; touch .ssh/authorized_keys; chmod 600 .ssh/authorized_keys
pi@raspberrypi ~ $ cat >> .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc...(省略)..TF6yiExpovv3rr5byxxwptmOYQ== rsa-key-20151002
pi@raspberrypi ~ $
Windowsから、Plink.exeにて接続確認
Windows-cmd.exe
C:\Tools\PuTTY\PLINK.EXE -i id_rsa-2048_20151002.ppk pi@raspberrypi echo Hello World !
Hello World !
- パスなしで入れましたね!
あとは Visual Studio 2015で、LinuxのHelloWorldデバッグ(MIDebugEngine使用)と同様にすすめましょう。
プロジェクト、ファイル作成
-
- 空ファイルだけ作って。
raspberrypi-console
pi@raspberrypi ~ $ cd
pi@raspberrypi ~ $ mkdir HelloWorld
pi@raspberrypi ~ $ touch HelloWorld/HelloWorld.cpp
-
- VS起動、File > New > Project From Existing Code...
- Visual C++ [Next]
- Project file location:
J:\HelloWorld
- Project name:
HelloWorld
- で [Next] 3.とりあえず..
- Use Visual Studio で、
[Console application project]
- で [Next]
-
- HelloWorld.cpp編集
HelloWorld.cpp
#include <cstdio>
int add(int x, int y)
{
return x + y;
}
int main()
{
int a = 5;
int b = 4;
int c = add(a, b);
std::printf("Hello World %d\n", c);
return 0;
}
-
- 適当なとこに、Breakpointおいて、[F5]おして、通常動作するか確認。
Raspberry pi上でビルド
-
- ファイル確認
raspberrypi-console
pi@raspberrypi ~/HelloWorld $ cd
pi@raspberrypi ~ $ cd
pi@raspberrypi ~ $ cd ~/HelloWorld/
pi@raspberrypi ~/HelloWorld $ ls -1
Debug
HelloWorld.cpp
HelloWorld.sln
HelloWorld.vcxproj
HelloWorld.vcxproj.filters
pi@raspberrypi ~/HelloWorld $
-
- ビルド、実行
raspberrypi-console
pi@raspberrypi ~/HelloWorld $ gcc -o HelloWorld HelloWorld.cpp -g -O0
pi@raspberrypi ~/HelloWorld $ ls -1
Debug
HelloWorld
HelloWorld.cpp
HelloWorld.sln
HelloWorld.vcxproj
HelloWorld.vcxproj.filters
pi@raspberrypi ~/HelloWorld $ ./HelloWorld
Hello World 9
pi@raspberrypi ~/HelloWorld $
Windowsのコマンドラインから、Plinkつかって、RaspberryPiのファイルをビルド
windows-console
C:\Tools\PuTTY\PLINK.EXE -i J:\id_rsa-2048_20151002.ppk pi@raspberrypi cd HelloWorld;gcc -o HelloWorld HelloWorld.cpp -g -O0; ./HelloWorld
Hello World 9
Makefile 書けば、make一発ですな。
VisualStudio2015からデバッグ
MIDebugEngineへのオプションファイルを準備
- Plinkへのパスとか、
- ppkへのパスとか、
うまく編集する。
/home/pi/HelloWorld/LaunchOptionRaspberryPi.xml
<PipeLaunchOptions xmlns="http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014"
PipePath="C:\Tools\PuTTY\PLINK.EXE"
PipeArguments="-i C:\Users\User01\.ssh\id_rsa-2048_20151002.ppk pi@raspberrypi -batch -t gdb --interpreter=mi"
ExePath="/home/pi/HelloWorld/HelloWorld"
ExeArguments=""
TargetArchitecture="X64"
WorkingDirectory="/home/pi/HelloWorld"
AdditionalSOLibSearchPath="">
</PipeLaunchOptions>
Win:VS2015から
-
HelloWorld.cppをひらいて、ブレークポイントをはる。
-
View > Other Windows > Command Window (Ctrl+Alt+A)でコマンドウインドウを開く(下)
-
Command Windowに
Debug.MIDebugLaunch /Executable:HelloWorld /OptionsFile:J:\HelloWorld\LaunchOptionsLinux.xml
といれて、 [Enter]をおす
-
Visual Studio 2015のUIで、デバッガがうごきます。
- [F10] Step Over
- [F11] Step Into
- Shift+[F11] Step Out
- 変数の値を変更したり、Call Stackみたりできます。