Visual C++ Team Blogの Visual C++ for Linux DevelopmentエントリのDesktop Applicationsのサンプルをやってみる。
環境
- Windows 10 (64bit)
- Visual Studio 2015 Update 2 (Enterprise) 全部入りでインストール。
- Linux: Lubuntu 14.04.4 LTS (64bit)
くまさんISOからLubuntu-14.04.4-64bit-kuma0317.iso
を利用し、VMWareの仮想マシンとしてインストール - Visual C++ for linux Development : インストールは、こちらの記事から
準備: Linux
-
インストール後は、いつもの...
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoremove
sudo apt-get autoclean
2. Visual C++ for Linux developmentで必要なパッケージ<br>`sudo apt-get install -y openssh-server g++ gdb gdbserver`
3. OpenGL開発ライブラリ("> *Here are the apt packages we used: libgles1-mesa, libgles1-mesa-dev, freeglut3, freeglut3-dev.*")<br>`sudo apt-get install -y freeglut3-dev`
## VS2015: Getting Started
1. プロジェクト作成
1. ファイル > 新規作成 > プロジェクト<br>で、新しいプロジェクト ダイアログから
2. インストール済み>テンプレート>Visual C++>クロスプラットフォーム > Linux を選んで
3. Empty Project (Linux) を選んで、<br>![VCLinuxOpenGL1.png](https://qiita-image-store.s3.amazonaws.com/0/75594/d98cfc57-a660-a6ce-914b-1fd3b4f2d8b1.png)
4. (名前、場所、とか、かえたり、かえなかったりして)
5. [OK]
2. main.cppをプロジェクトへ追加
1. ソリューションエクスプローラのProject1で、右クリック
2. 追加 > 新しい項目 <br>![VCLinuxOpenGL3_.png](https://qiita-image-store.s3.amazonaws.com/0/75594/15196334-9b56-a39b-7794-d27a83b79be1.png)
3. C++ファイル(.cpp) を選んで、名前をmain.cppとして、追加<br>![VCLinuxOpenGL4.png](https://qiita-image-store.s3.amazonaws.com/0/75594/e1286ab0-a238-1b2b-82c0-f5daa03bf4de.png)
3. OpenGLコード
1. [Julien Guertault’s OpenGL tutorial](http://lousodrome.net/opengl/)から、[Spinning cube](http://lousodrome.net/opengl/#spinningcube)のソースを持ってくる。<br>
=> Download the spinning cube example. から spinningcube.tar.gzをダウンロード
2. 解凍して取り出したmain.cファイルの内容を、main.cppへこぴぺして、CTRL+S
4. プロジェクト > Project1のプロパティ 設定
1. Remote settings : Target machine が接続先になってるか、確認<br>![VCLinuxOpenGL5.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b2ffa146-ef6e-5c35-b748-c7035e3c2662.png)
2. リンクするライブラリ追加 : Linker > Input : Library Dependenciesへ、`m;GL;GLU;glut` をいれる。<br>![VCLinuxOpenGL6.png](https://qiita-image-store.s3.amazonaws.com/0/75594/98c965d6-38b7-2f8a-1e03-42cf9a96596d.png)
3. デバッグ > Pre-Launch Commandへ、`export DISPLAY=:0.0` をいれる。<br>![VCLinuxOpenGL7.png](https://qiita-image-store.s3.amazonaws.com/0/75594/79cd7c5d-3b15-f363-c975-66225062a39a.png)
## 実行・ブレイクポイント
1. [F5]: ビルド・デバッグ実行
2. 立方体がぐるぐる回る
<br>![VCLinuxOpenGL8_.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b2f36e11-5cf3-f274-0186-20b379b0a637.png)
3. ブレークポイントを張ってみる (34行目にかーそるをもっていって [F9])<br>![VCLinuxOpenGL9.png](https://qiita-image-store.s3.amazonaws.com/0/75594/b3639b6d-c3c3-6da9-a250-0da7f01ed9be.png)
4. 立方体がとまる
## おまけ
Ubuntu側の`/usr/include`をsambaで共有して、VCのインクルードパスに加えれば・・・
1. sambaインストール・簡単設定
2. インストール<br>`sudo apt-get install -y samba`
3. smb.conf編集
```shell-session
sudo mv /etc/samba/cmb.conf /etc/samba/smb.conf.org #念のためオリジナル保存
sudo cp /etc/samba/cmb.conf.org /etc/samba/smb.conf
sudo vi /etc/samba/smb.conf #編集
- viでは、'G'をおして最終行へジャンプ
- 以下をsmb.confの最後に追加
```txt:/etc/samba/smb.conf(ゲストでリードオンリーで設定)
...
共有名
[usr_include]
共有フォルダ指定
path = /usr/include
読み出しのみ
writable = no
ゲストユーザーOK
guest ok = yes
全てゲストとして扱う
guest only = yes
4. samba再起動 <br> `sudo service smbd restart`
5. Windowsから、共有フォルダを見てみる<br>![VCLinuxOpenGL10.png](https://qiita-image-store.s3.amazonaws.com/0/75594/5e01ab0c-29dd-9a65-99f8-2922749f06e4.png)
6. プロジェクト> プロパティをひらいて、VC++ Directoriesで、`Include Directories`にusr_includeを追加。<br>![VCLinuxOpenGL11.png](https://qiita-image-store.s3.amazonaws.com/0/75594/9cf584c1-8309-0ef2-d40f-d629f10a6e28.png)
7. <font color='red'>赤い波線</font>も消えて、定義が見れますね。<br>![VCLinuxOpenGL12.png](https://qiita-image-store.s3.amazonaws.com/0/75594/4951830a-9402-30f7-bf4c-3361423da863.png)
## その他
リンクされてるっぽい
[(ぼくの技術日誌) VisualStudio2015とVisual C++ for Linux Developmentを使ってみる](http://engineernote.hatenablog.com/entry/2016/04/18/185414)