1. 同時裝VC6 VS2010,查看編譯器版本
先調用來VS2010 的SDK 的環境設置自, 後進行CL命令
VS2010 的安裝後會自動添加一個%VS100COMNTOOLS%的環境變數, 利用該變數設定的安裝目錄,可以定位VS2010提供的環境變數設定批處理文件路徑(%VS100COMNTOOLS%..\..\vc\vcvarsall.bat)
以下是一個在命令行中編譯工程的批處理示例(build.bat), 希望能對你有所幫助
set "curr_dir=%cd%"
call "%VS100COMNTOOLS%..\..\vc\vcvarsall.bat" x86
cd %curr_dir%
msbuild %curr_dir%\project\temp.vcxproj "Release|Win32"
2. 如何確定VS編譯器版本
VS2013是32位的編譯器,但是他可以生成32位和64位的版本的應用程序,默認生成的是32位的應用程序,64位的應用程序,具體的話,可以按照下圖進行設置:希望對你有用哦,我是ndk吧的吧主,有問題可以到ndk吧進行留言,謝謝!
3. 如何確定VS編譯器版本
如何確定VS編譯器版本
_MSC_VER是MSVC編譯器的內置宏,定義了編譯器的版本,_MSC_VER 值對應版本關系
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2012)
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER = 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER = 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER = 1300 (Visual Studio 2002)
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100
example:
#if (_MSC_VER == 1300) //vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) //vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" no_implementation raw_interfaces_only named_guids
#endif
在程序中加入_MSC_VER宏可以根據編譯器版本讓編譯器選擇性地編譯一段程序。例如一個版本編譯器產生的lib文件可能不能被另一個版
本的編譯器調用,那麼在開發應用程序的時候,在該程序的lib調用庫中放入多個版本編譯器產生的lib文件。在程序中加入_MSC_VER宏
,編譯器就能夠在調用的時根據其版本自動選擇可以鏈接的lib庫版本,如下所示。
#if _MSC_VER >= 1400 // for vc8, or vc9
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc8-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc8-r.lib" )
#endif
#else if _MSC_VER >= 1310 // for vc71
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc71-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc71-r.lib" )
#endif
#else if _MSC_VER >=1200 // for vc6
#ifdef _DEBUG
#pragma comment( lib, "SomeLib-vc6-d.lib" )
#else if
#pragma comment( lib, "SomeLib-vc6-r.lib" )
#endif
#endif
4. 我的電腦win7 32位得,可以裝vs編譯器嗎
1、vs2010即是vs的版本。另外還有vs2008、vs2012、vs2015等等,另外單個版本一般還分為旗艦版、正式版,只是在功能上略有不同。
2、學生如果只是為了學習某種編程語言,比如c/c++,建議安裝vc6.0或者devc++這樣輕型的IDE開發環境。因為相對於VS,vc6.0、devc++等集成開發環境,操作簡單、調試方式、佔用資源少。
3、學生如果是希望用於軟體設計,可以安裝vs2015正式版或者旗艦版都可以。不過真正工作中用vs敲代碼的很少,一般都是用一個比較好用的編輯器,比如vim、notepad++等等,編寫完源碼,通過編寫makefile來進行編譯,而並不真正的使用集成開發環境。
5. 如何確定VS編譯器版本
1、用VS工具打開一個項目,裡面沒有顯示行號。2、在菜單項,點擊打開「工具」--「選項」進入。3、選擇文本編輯器,根據自己編寫的語言而定,這里選擇C#。4、在行號前面上打鉤。5、點擊確定,就可以看到代碼前面顯示出行號。
6. 如何查看vs編譯器版本
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2011)
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER = 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER = 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER = 1300 (Visual Studio 2002)
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100
example:
#if (_MSC_VER == 1300) //vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) //vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" no_implementation raw_interfaces_only named_guids
#endif
7. 如何在Visual Studio中選擇C++和C#的編譯器版本
Visu後來進行C++、C#、web開發,改為開發環境。
8. 如何確定VS編譯器版本
MSVC++ 11.0 _MSC_VER = 1700 (Visual Studio 2011)
MSVC++ 10.0 _MSC_VER = 1600 (Visual Studio 2010)
MSVC++ 9.0 _MSC_VER = 1500 (Visual Studio 2008)
MSVC++ 8.0 _MSC_VER = 1400 (Visual Studio 2005)
MSVC++ 7.1 _MSC_VER = 1310 (Visual Studio 2003)
MSVC++ 7.0 _MSC_VER = 1300 (Visual Studio 2002)
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100
example:
#if (_MSC_VER == 1300) //vc7
#import "acax16ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1200) //vc6
#import "acad.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1400) //vc8
#import "acax17ENU.tlb" no_implementation raw_interfaces_only named_guids
#elif (_MSC_VER == 1500) //vc9
#import "acax18ENU.tlb" n
9. 如何在Visual Studio中選擇C++和C#的編譯器版本
MSBuild簡介
Visual Studio的編譯引擎是 MSBuild ,它提供了一套項目文件( .csproj , .vbproj , vcxproj )的XML的Schema,用來指定如何處理和編譯項目。
當然MSBuild不依賴於Visual Studio,完全可以在不安裝Visual Studio的情況下使用MSBuild。比如可以從 Microsoft Build Tools 2015 下載MSBuild來編譯C#。2016年3月31號微軟也宣布了 Visual C++ Build Tools 2015 ,可以 下載 來編譯VC++的項目。
MSBuild也是一個MIT License的開源軟體,可以在Github上看到它的 倉庫 。
MSBuild Toolset (ToolsVersion) 是一個任務、目標和工具的集合,指定MSBuild的行為。通常一個MSBuild的Toolset包含 microsoft.common.tasks 文件, microsoft.common.targets 文件和編譯器比如 csc.exe , cl.exe 和 link.exe 。
在裝Visual Studio時會按照對應版本的MSBuild,比如Visual Studio 2015對應的MSBuild就是v14。如果我們用Visual Studio創建C#和C++的項目,在 .csproj 和 .vcxproj 文件的第一行都指定了對應MSBuild的Toolset,如下所示。
<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
在Visual Studio中編譯項目時就會使用v14的MSBuild來編譯。
用VS2015的MSBuild來編譯VS2015創建的項目
我們也可以直接使用MSBuild來編譯,我分別創建了一個空的C#和空的C++的Console應用,然後打開MSBuild Command Prompt for VS2015,用如下命令行來編譯
msbuild CompilerDemo.sln /t:rebuild
可以看到如下的命令行輸出:
CoreCompile:
C:\Program Files (x86)\MSBuild\14.0\bin\csc.exe ...
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\CL.exe ...
Link:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\link.exe ...
說明在編譯項目時使用了v14的MSBuild下的 csc.exe , cl.exe 和 link.exe。
用VS2013的MSBuild來編譯VS2015創建的項目
如果我們打開Developer Command Prompt for VS2013,用VS2013的MSBuild編譯項目。
msbuild CompilerDemo.sln /t:rebuild
得到如下的命令行輸出:
CoreCompile:
C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe ...
Done Building Project "D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj" (Rebuild target(s)).
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found.
我們看到用v12的MSBuild編譯C#項目時成功了,但是編譯C++項目時失敗了,說找不到Platform Toolset = 『v140』。我們回頭打開 .vcxproj 文件,可以看到在這個文件里指定了 <PlatformToolset>v140</PlatformToolset> 。我們把它改成v120,再重新編譯,這次發現成功了。
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe ...
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe ...
用VS2015的MSBuild來編譯VS2015創建的項目(修改C++項目的PlatformToolset)
修改完 PlatformToolset 之後,我們再用VS2015的MSBuild編譯一下,看看結果。
CoreCompile:
C:\Program Files (x86)\MSBuild\14.0\bin\csc.exe ...
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe ...
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe ...
我們發現它使用了v14的 csc.exe ,但是使用了v12的 cl.exe 和 link 。
用VS2015的MSBuild來編譯,但是指定VS2013的C++和C#的編譯器
那有沒有辦法讓VS2015的MSBuild也使用v12的C#的編譯器( csc.exe )呢?我們可以參考一下 Overriding ToolsVersion Settings 。
可以使用MSBuild的命令行參數開關: /ToolsVersion ,簡寫為 /tv 。打開MSBuild Command Prompt for VS2015,用如下命令行來編譯。
msbuild CompilerDemo.sln /t:rebuild /tv:"12.0"
我們得到了如下的命令行輸出:
CoreCompile:
C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe ...
ClCompile:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\CL.exe ...
Link:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\link.exe ...
嗯,我們終於在VS2015的MSBuild命令下,成功的使用了VS2013的C++和C#的編譯器。
用Visual Studio 2015來編譯,但是指定VS2013的C++和C#的編譯器
那麼有沒有辦法來讓Visual Studio 2015在編譯時也用2013的編譯器呢?我們沒有辦法來指定MSBuild的開關了。根據 Overriding ToolsVersion Settings 介紹的方法,需要做兩件事。
修改項目文件的 ToolsVersion 屬性
在本文的開頭提到了在項目文件的第一行寫明了對應MSBuild的Toolset。我們可以修改這個屬性,把項目文件的第一行改成:
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
設置環境變數
set =true
這樣在Visual Studio 2015中編譯也會使用VS2013的編譯器了。而且直接在MSBuild Command Prompt for VS2015中直接使用MSBuild,不需要制定 /tv 開關,也是使用VS2013的編譯器了。
來驗證一下,如果我們在代碼中使用了C#6的新特性(VS2015支持)。
object o = null;
Console.WriteLine(o?.ToString());
那麼在Visual Studio 2015中編譯會報錯。
Build FAILED.
"D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CompilerDemo.sln" (rebuild target) (1) ->
"D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj" (Rebuild target) (2) ->
(CoreCompile target) ->
Program.cs(10,33): error CS1525: Invalid expression term '.' [D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj]
Program.cs(10,34): error CS1003: Syntax error, ':' expected [D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj]
Program.cs(10,44): error CS1002: ; expected [D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj]
Program.cs(10,44): error CS1525: Invalid expression term ')' [D:\Documents\Visual Studio 2015\Projects\CompilerDemo\CSharpCompiler\CSharpCompiler.csproj]
0 Warning(s)
4 Error(s)
在Visual Studio 2015中指定C#語言的版本
另外在Visual Studio中可以指定支持的C#語言的版本。右鍵項目-》屬性-》編譯-》高級-》語言版本。Visual Studio 2015的默認就是支持的最高版本C# 6.0,可以在這里選擇不同的版本。
總結 TLDR
對於C++項目
通過設置 PlatformToolset 來指定C++的編譯器版本。
對於C#項目
使用相應版本的MSBuild。
或者
使用MSBuild的命令行開關 /ToolsVersion ( /tv )。
或者
1. 修改項目文件的 ToolsVersion 屬性。
2. 設置環境變數 。
10. 如何確定VS編譯器版本
ide打開直接看about中的版本
或者點console窗口看提示版本