VisualStudio2017でLinux用のビルドをする方法(Inferior loaded対応)

VisualStudio2017ではgdbと連携してLinux環境のC/C++開発がVisual Studioで出来るようになりました。Bash on WindowsやHyper-V上のLinuxのGUIアプリなども問題なくビルドできます。この仕組みは「Visual C++ for Linux Development」というそうです。またgithub上で開発されています。

Visual C++ for Linux Development

https://marketplace.visualstudio.com/items?itemName=VisualCPPTeam.VisualCforLinuxDevelopment

https://blogs.msdn.microsoft.com/vcblog/2017/02/08/targeting-windows-subsystem-for-linux-from-visual-studio/

Loaded ‘/lib/x86_64-linux-gnu/libc.so.6’. Cannot find or open the symbol file.

実際に上記のURLなどを参考に環境を構築して試してみて見たら以下のエラーが発生しました。

対応としては、初期設定のデバックモードをgdbserverからgdbに変更すればひとまず対応できるようです。

初期設定はgdbserverですが、gdbの場合は、Linux環境にシェルで接続してgdbを動かすようです。gdbserverの場合はローカル(=Windows)でgdbを動作させてgdbserverに接続するようなのでポート設定などが必要なのかもしれません。

 

https://github.com/Microsoft/VSLinux/issues/86

 

C言語でBrainfuckを実装

C言語でBrainfuckを実装しました。モダンなC言語はint型などを使わないようなので試しにuint8_tを使ったりstrlen_sを使ってみました。[]括弧の2重ループは、参考にした資料が分かりやすかったのでそのまま使いました。BrainfuckはC言語だと、配列のポインターが、データポインターになり、入力ソースコードの文字列のインデックスが、命令ポインターになるので、Wikipedia に書かれている通りに実装できます。