Visual Studio 2017

微軟的宇宙第一IDE Visual Studio 2017正式版出來了,地址是:https://www.visualstudio.com/vs/whatsnew/

VS2017亮點很多,包括模塊化安裝、啟動速度加快(第一次啟動加快50%以上)、github插件、啟動頁完善、增強(qiáng)代碼提示功能,等等,更多參考:https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes。

萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

Visual Studio 2017 Support for Linux Development

VS2017可以編輯、編譯、調(diào)試linux上的c++、python、node.js程序(詳細(xì))。

甚至可以編譯調(diào)試.NET程序,支持的Linux平臺包括:

  • CentOS 7.1 and Oracle Linux 7.1

  • Debian 8

  • Fedora 23

  • Linux Mint 17

  • openSUSE 13.2

  • Red Hat Enterprise Linux 7.2

  • Ubuntu 14.04 and 16.04

博主主要是c++作為開發(fā)語言,并且絕大部分代碼都有跨平臺的需求。博主一般步驟如下:

  • 在windows機(jī)器上使用visual studio開發(fā)大部分算法功能模塊,并且調(diào)試優(yōu)化完畢;

  • 在涉及到IO或者網(wǎng)絡(luò)相關(guān)的部分,需要port到linux平臺,痛苦的用vim編寫代碼,gcc編譯,gdb調(diào)試。

重點關(guān)注其中Visual Studio在C++跨平臺方面的亮點,即Visual C++ for Linux,有了它,就能用最先進(jìn)的IDE進(jìn)行跨平臺的開發(fā)了,好開心!

Visual C++ for Linux

VC++ 2017支持在編寫、調(diào)試Linux下的C++程序([詳細(xì)(https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/))。

創(chuàng)建跨平臺Linux C++程序,如圖:

萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

實際使用效果如下圖,可以看到,能夠在VS下面編譯Linux代碼,甚至包括linux特有的頭文件。除了代碼補(bǔ)全很爽之外,還有代碼著色,可視化調(diào)試等各種優(yōu)點。

萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

使用步驟

  1. 目標(biāo)linux機(jī)器上安裝好編譯環(huán)境與調(diào)試環(huán)境,如在ubuntu下,安裝好openssh-server/g++/gdb/gdbserver等。

    sudo apt-get install openssh-server g++ gdb gdbserver
  2. 本機(jī)安裝好visual studio 2017,需要選擇安裝Cross Platform Linux C++環(huán)境。

  3. 打開Visual Studio,新建工程,選擇Cross Platform/Linux/Console Application。

  4. 在第一次build之前會要求ssh連接到目標(biāo)linux機(jī)器,填上用戶名密碼連接目標(biāo)機(jī)器。如果需要更換目標(biāo)機(jī)器地址,在Tools/Options/Cross Platform下進(jìn)行管理。

    萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

  5. 設(shè)置好一系列選項(黑體部分),與普通的Win32程序的設(shè)置基本一致。需要注意如下2點:

    • vs不會自動把a(bǔ)ddtional include中的頭文件復(fù)制到本地來做代碼補(bǔ)全的提示,需要手動將linux下面的/usr/include、/usr/local/include等目錄復(fù)制到vs的linux header path(如:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include\usr)

    • 頭文件包含目錄和庫文件包含目錄均為linux下的絕對路徑。

      萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
      萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
      萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
      萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
      萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

  6. 編譯時vs會將代碼復(fù)制到目標(biāo)機(jī)器的~/projects/[project-name]目錄下,二進(jìn)制文件在其目錄的bin目錄下。如下圖,Linux環(huán)境下可以看到,已經(jīng)有代碼了。

    萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)
    萬碼學(xué)堂,電腦培訓(xùn),計算機(jī)培訓(xùn),Java培訓(xùn),JavaEE開發(fā)培訓(xùn),青島軟件培訓(xùn),軟件工程師培訓(xùn)

實際開發(fā)

在初步使用體驗中,感覺這個vs for linux還不是特別成熟,有不少問題,包括:復(fù)制文件速度過慢、無法多線程編譯、編譯輸出信息丟失(不夠友好)、無法操作跳板機(jī)等。
不過該工具作為編碼的輔助工具,仍然非常具有價值,結(jié)合了vs強(qiáng)大的的代碼編輯與調(diào)試功能和linux機(jī)器的天然服務(wù)器特性。未來可期!

http://www.cnblogs.com/xylc/p/6533716.html