ようやくきました。Visual StudioがGCC/GDB対応

不覚。もうずいぶん前からVisual StudioのGCC対応を熱望していた私が、私が…既に対応していたのを知らなかったとわ。とほほ。ま、最近はIoTに専念していたのでAご勘弁。でも全く関係ないわけではなく、むしろ結構関係してる。 はい、不覚話はそれくらいにして、話を進めます。Visual Studio 2015 がリリースされた時、iPhone、AndroidのNativeアプリが開発できる機能が加わり、GDB対応により実機デバッグができるようにはなっていました。で、2015年11月18日にUpdate 1がリリースされました。その時に https://blogs.msdn.microsoft.com/vcblog/2015/11/18/announcing-the-vs-gdb-debugger-extension/ Announcing the VS GDB Debugger Extension というブログが公開されてました。はい、チラ見しました。GDB対応がLINUXも含めて拡張されたのね、はいはい…っていうのが確か当時の印象。しかし、今回ちゃんと全文見直して、おいおい、それだけで済む話じゃない、って訳です。VS2015初版リリースの時は、言ってみれば、 スマホのiOS、AndroidのNativeアプリのデバッグ用としてGDB対応したよ ってことで、組込みマインドからすると、「あぁそう、便利になったね(棒読み)」って感じで、いやそれならGCC対応しようよ。そしたら組込み系でGNU系のC/C++使っている人たち皆に「Visual Studio使おうぜ」って言えるよね…なんて思ってました。 で、Update 1でリリースされた機能、ブログによれば、 LINUX上で動くNativeアプリをGCCのC/C++で開発できて、リモートで動いているNatvieアプリをGDBでデバッグできますよ ついでに、 LocalでもCygwinとかMingwでローカルでG++でコンパイルできて、GDBでデバッグできるよ  ふわぁっ?え?ちょっと待て、ってことは、GCC系のコンパイラエラーもVisual Studioでハンドリングするの?そしたら、GNU系のクロスコンパイラー系もできるわけだよね?えーっ…ってことです。ま、クロスコンパイラがWindowsで実行可能であることが条件ですが。プロならGNUのコンパイラを自分で作るのなんか簡単だからそこは問題ないとして。 先ほど挙げたブログに全部書いてあるんで見てね…と行きたいところですが、そうすると私いらなくなっちゃうので、引っかかりそうなところも含め説明しておきますね。 まずは、http://mingw.org/ からInstallerをダウンロード&実行してGCC/G++が動く環境を構築してくださいね。そんで、環境変数(え?今時?とか言わないように)でPATHに、c:\mingw\binを追加してください。 コントロールパネル→システムで、”システムの詳細設定”をクリックして、”環境変数”をクリック、ユーザーの環境変数の”PATH”を選択して、”編集”をクリックし、Mingwのパスを追加します。そのままではこの変更は有効にならないので、一旦デスクトップをサインアウトして再度サインインしてください。 Visual Studio 2015 Update 1を起動して、メニューの”ツール”→”拡張機能と更新プログラム”を選択し、”オンライン”を選択した後、検索窓に”GDB”と力強く入力! ”Visual Studio GDB Debugger”を選択してインストールします。いったんVSを再起動し、プロジェクトを作成!  Visual C++のMakefile Project(GDB)を使ってプロジェクトを作ります。 それで、main.cを追加して、 #include <stdio.h> int main(int ac, char** av) { a} こんなコードを書いてみる。そして、プロジェクトのプロパティを開いて、 “デバッグ”を選択して、起動するデバッガーは”Local Debugger”を選択、”Local Working Directory”に、作っているプロジェクトのディレクトリを絶対パスで入力します。この時、スペースとか入っていると、GCCコンパイラの引数として正しく渡されないので、ショート形式にするか、スペースが入らないディレクトリでプロジェクトを作るかしてください。それと、”Local Executable”には”gdbtest.exe”と入力します。次に、…

0