2011-09-27 74 views
3

我喜歡Visual Studio IDE。我習慣了它,並發現它是我嘗試過的最好的IDE。我們也發現在這裏越來越多地使用C#/ .NET。使用Visual C++與不同的C++編譯器?

然而,underwhelming announcement regarding C++11 features in VS11後,我尋找到更換編譯器

看來,Intel compiler fully integrates with VS但這並不意味着它會編譯我們的Windows代碼。我不知道我會如何與克一試++或鐺票價

能VS實際上具有不同的C++編譯器可以有效地用來編譯Windows代碼,那就是使用各種的Win32/MFC的遺留代碼/ COM的東西?

+4

英特爾編譯器爲什麼不編譯你的Windows代碼? –

+1

英特爾C++編譯器與某些Visual C++功能不兼容:閱讀[兼容性圖表](http://software.intel.com/en-us/articles/intel-c-compiler-compatibility-with -Microsoft-視覺-C /)。其中一件重要的事就是MFC可能使用的「屬性代碼」,但英特爾的編譯器不支持。 – birryree

+0

關於我的[C++ 11功能鏈接](http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx):Herb Sutter做了一些解釋[在開始時本視頻](http://channel9.msdn.com/Events/BUILD/BUILD2011/TOOL-835T)。 –

回答

1

取決於您對Microsoft專有擴展的使用量。諸如#pragma once之類的東西往往得到所有主要編譯器的支持,但是更糟糕的COM事物(例如,#import和任何C++/CLI)可能不會。不知道MFC是否會在新的編譯器下編譯,但你可能需要靜態鏈接它或者發佈你自己的DLL。 G ++絕對使用與MSVC不同的修正方案。

我不確定替換cl.exe和保持vcproj文件完好無損(儘管有些編譯器實際上是這樣做的),但總是有Makefile項目。

+0

+1專門提到MFC-DLL和不同的加密方案 –

0

我從來沒有真正使用過英特爾C++編譯器,但我沒有看到爲什麼它不會編譯VC++的代碼。 Here是英特爾官方文檔。

0

我使用Visual Studio 2008和Makefile項目進行交叉編譯;沒有理由不能使用不同的Windows編譯器。

+0

如果你交叉編譯,你可能沒有任何Win32或MFC的東西,或者你呢? (注意:如果代碼組合,我不介意makefile項目。) –