在 Windows 寫 Linux 程式:Visual Studio + Windows Subsystem for Linux

微軟的 VIsual Studio 在 Heresy 來看,算是 Windows 上最好的 C++ 開發環境,但是缺點就是沒有 Linux 版了。不過,微軟在這幾年正積極地往跨平台、開放原始碼的方向走,所以這部分的狀況倒也有些改變了~

在 2015 年,微軟也已經發表了跨平台的開發環境、Visual Studio Code,雖然還是沒有開放原始碼,但是也算是聊勝於無了。而同時,Visual Studio 2015 也加入了跨平台的程式開發功能!除了 Windows 外,也支援了 Android、iOS 以及 Linux~(不過當時 Heresy 想測試 Linux 的偵錯一直沒有成功就是了…)

這篇,則是 Heresy 看到微軟的 Visual C++ Team Blog 的《Targeting the Windows Subsystem for Linux from Visual Studio》後,才想起可以嘗試讓 Visual Studio 搭配 Windows 10 的 Bash on Ubuntu on Windows(Windows Subsystem for Linux、以下簡稱 WSL)來在單台 Windows PC 上、進行 Linux 上的 C++ 程式開發、偵錯

這篇的基本需求,主要是:

閱讀全文

Visual C++ 2015 Update 2 編譯出來的程式包含了遙測的功能?

Heresy 是看到《VS2015: How to Remove Windows Telemetry Function Call from your C/C++ Binaries》這篇文章才知道這件事了…

基本上,就是 sammiesdog 在 Reddit 上說(連結),他發現他用 Visual Studio 2015 Update 2 來編譯一個最簡單的 C++ 的程式的時候,編譯器所產生的二進為檔(binary),裡面赫然發現他會去呼叫「telemetry_main_invoke_trigger」和「telemetry_main_return_trigger」!

就算你的 C++ 程式碼只寫了:

int main() {
return 0; }

編譯出來的執行檔裡面,還是可以發現「telemetry」的蹤跡…

閱讀全文

微軟 2016 程式開發相關消息

這篇算是稍微整理一下,微軟在 Build 2016 大會上(官網),一些關於程式開發的新消息。

在 Heresy 個人來看,這幾年微軟一個很大的方向,應該就是「跨平台」吧…包含前幾天的《Windows 10 將可以跑 Linux 的 Bash shell 和 Ubuntu 的程式了》,以及更早的 Visual Studio Code 在內,微軟現在似乎越來越主動走向 Linux 社群了…

而這篇的重點,則包含了新的 Visual Studio "15" 預覽版,Visual Studio 2015 Update 2,以及 Visual C++ for Linux Development、C/C++ extension for Visual Studio Code;而在 .Net 那頭,更是喊出了「開放、跨平台、免費」的口號(參考)。

閱讀全文

微軟推出 VisualStudio 2015 以及 VisualStudio 2013 Update 5

在去年年底微軟推出 Visual Studi 2015 預覽版後,在今年四月微軟又針對 VisualStudio 2015 持續改良、推出了 Visual Studio 2015 RC,而現在、正式版終於推出了!而目前也已經可以在微軟網站下載了,其網址是:

https://www.visualstudio.com/downloads/download-visual-studio-vs

目前微軟的網站提供了可以免費使用的社群版(Visual Studio Community)、以及企業版(Visual Studio Enterprise)的試用版可供下載;另外也有提供跨平台、用來進行網頁開發的 VisualStudio Code 可以下載。

閱讀全文

微軟發表跨平台的 VisualStudio Code、以及 Visual Studio 2015 RC

微軟在去年底,曾經針對其自家的軟體開發環境,發表了一個相當大的策略性變化的新聞。包括了提供有限度免費的 VisualStudio Community 2013,以及開放了一定程度的 .Net Core 的原始碼;而在下一代的 VisualStudio 2015 Preview(預覽版)更是加入了跨平台開開的能力,讓開發者可以在 Windows 上透過 VisualStudio 2015 來開發 Android 或 iOS 的 App~
(請參考《微軟大消息!免費的全功能版 Visual Studio Community 2013、以及 Visual Studi 2015 預覽版發布!》)

而在今年的微軟 Build 大會上,微軟又繼續發表了一些讓人驚訝的消息了~包括了跨平台(Windows、Linux、MacOS)的開發環境「VisualStudio Code」、以及可以針對 Linux 程式進行偵錯的「Visual Studio 2015 RC」~官方的消息,可以參考《BUILD 2015 News: Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5》或《Introducing Visual Studio Code, Visual Studio 2015 RC, Application Insights Public Preview and .NET Core Preview for Linux and Mac》。

閱讀全文

解決 Boost 在 VC14 CTP6 無法建置的問題

恩…這是一個困擾 Heresy 很久的問題了…Heresy 之前為了嘗鮮,已經把 VisualStudio 安裝到最新的 VisualStudio 2015 預覽版了。而本來基本上都相安無事,但是後來在更新到 CTP6(官方介紹)之後,問題就來了…

但是應該是因為 VisualStudio 2015 CTP6 在 VC 的部分(以下稱「VC14 CTP6」),引進了新的「Universal CRT」(官方介紹)的關係,結果 Heresy 的 Boost C++ Libraries 就這樣無法建置成功了… orz

遇到的錯誤,基本上會像是:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\crtdefs.h(10):
fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory

閱讀全文

常見編譯器對 C++ 新標準的支援

本文的資料是來自《The Growth of Modern C++ Support》這篇文章。在這篇文章裡面,作者是針對 VC++(Microsoft Visual C++)、gcc、clang 以及 ICC(Intel C++ Compiler)這幾個知名的 C++ 邊義器,去整理他們對於 C++ 的新標準的支援進度圖。

首先,是 C++ 11 的部分(點下去可以看大圖):

閱讀全文

微軟大消息!免費的全功能版 Visual Studio Community 2013、以及 Visual Studi 2015 預覽版發布!

昨天微軟針對自家的開發環境,還真是放出了不少讓 Heresy 訝異的消息…而在 Somasegar’s blog,也有一篇標題超長的文章,來彙整這些發布…該文章是《Opening up Visual Studio and .NET to Every Developer, Any Application: .NET Server Core open source and cross platform, Visual Studio Community 2013 and preview of Visual Studio 2015 and .NET 2015

整個來說,這次一口氣發布的消息共有五項,包括了:

  • Server-side 的 .Net Core stack 在接下來的幾個月、將會完全開放原始碼
    而且開放原始碼的 .Net 除了可以在 Windows 執行外外,也將會可以 Linux 和 Mac OS X 上運作

  • 針對自家 Windows 上的開發工具、Visual Studio,推出了新的版本「Visual Studio Community 2013」
    這是一個免費版本,而且和之前免費、有做功能閹割 Express 版不同,他是全功能的版本(等同專業版)

  • 下一代的 Visual Studio 2015 Preview、.NET 2015 Preview。提供了跨平台(行動裝置…)的程式開發功能!

  • Visual Studio 2013 Update 4 發布。

  • Visual Studio Online 的 DevOps 加入 Visual Studio Online Release Management service 和 Visual Studio Cloud Deployment Projects。

閱讀全文

下一代 Visual Studio 14 CTP 開放下載!

微軟近年來針對 Visual Studio 這個程式開發環境的更新算是相當地勤勞,不但 Visual Studio 2012Visual Studio 2013 只隔了一年,中間用來取代原有 Service Pack 的 Update 機制,也做了數次的更新。

而現在,微軟又發不了他們下一代的 Visual Studio 14 的 Community Technology Preview、社群技術預覽版了!其官方頁面是:

http://www.visualstudio.com/en-us/downloads/visual-studio-14-ctp-vs

目前也已經可以下載測試了~其版本編號為 14.0.21730.1.DP。不過也要注意,這個版本還僅只是測試用的版本,並非穩定的正式版。

閱讀全文

Visual C++ 2013 的 STL 平行化函示庫

之前在《C++14 進行中,來看目前的委員會草案吧~》一文中有提過了,在 C++14 這個尚未定案的 C++ 新標準裡、又針對了 C++ 的核心語言、以及標準函示庫(STL)做出了若干的改進。其中,Heresy 覺得相當重要的一部分,就是讓平行化程式開發更簡單的 STL 新函示庫、Parallel STL 了!

而之前在《Modern C++: What you need to know》一文也有提過,微軟在 Build 2014 上曾經預告過,將會放出根據《Working Draft, Technical Specification for C++ Extensions for Parallelism》實作的 Parallel STL 雛型版本;而現在,微軟終於把他放在 CodePlex 上了!

官方的介紹,是《Parallel STL – Democratizing Parallelism in C++》這篇文章,專案的網址則是:

https://parallelstl.codeplex.com/

閱讀全文