VisualStudioのC++でLinux

VisualStudio2017でLinuxのクロス開発がサポートされたので、つかってみました。接続の方法は各所に書いてあり難しいことはありませんでした。いくつかハマった点があったのでメモを残します。この記事はVisualStudio Community 2017 version 15.2でテストした結果です。

includeファイルが見つからない

VisualStudioの場合、本来だとlinux側にあるインクルードファイルはローカルにすべてコピーされているものとして始めるわけですが、実際にはそれが上手く動作していないのか、または別の理由かわかりませんがコピーされていませんでした。対応方法はプロジェクトメニューの中の一番下にあるプロパティを開きます。構成プロパティの中のVC++ディレクトリにインクルードファイルのパスを追加しました。最初はインクルードファイルを全部コピーしようかとも思ったのですが、Linux側でアップデートとかしたときに整合性がとれなくなるといけないのでSAMBAで接続してLinux側のインクルードディレクトリを追加しました。実際に追加したのは /usr/include と /usr/include/arm-linux-gnueabihf  です。

bluetooth/bluetooth.hを使ってみる

VisualStudioからraspberry piのbuletooth/bluetooth.hをたたいてみました。

sudo apt-get install で libbluetooth-dev と libc6-dev を追加しました。

https://people.csail.mit.edu/albert/bluez-intro/c404.html このページのサンプルプログラムをコピペしました。元のプログラムはCですがVisualStudioのC++でも動作します。特に問題点はありませんでした。

ライブラリをリンカに追加しました。

プロジェクトのプロパティを開き、リンカーの中の入力で、追加の依存ファイルという項目があるので、そこに -lbuletooth と追加しました。

raspbery pi 3Bでテスト

問題なく動作して、期待通りの結果が得られました。結果はVisualStudioのLinux Console Windowに表示さます。