導航:首頁 > 版本升級 > vs2012編譯器版本

vs2012編譯器版本

發布時間:2023-02-09 12:36:12

㈠ 有沒有人用VS2012做過Bolt界面引擎 求教一下怎麼配置啊,我老是出現

一般可能是你用的編譯器版本和動態庫編譯用的版本不匹配,同是VS2012的話還要看64 位還是32位
DUMPBIN命令可以顯示動態庫的信息。。。

㈡ 為什麼VS2012不支持C++11

Visual Studio 2012隻是部分支持,不是不支持,VS2012剛出的那時候估計沒有一個款編譯器完全支持C++11。

Visual C++之前對C++標準的支持比較緩慢,不過Visual C++現在對標準的支持比較積極了,新版本的Visual Studio 2015和目前處在預覽版本的Visual Studio 15完全支持了C++11,並且已經實驗性地支持部分正在標准化的C++特性。

㈢ 怎麼修改VS2012變成和VC一樣的編譯環境


你新建空的控制台工程就可以了,新建項目、模板、VisualC++、Win32、Win32控制台應用程序、彈出的窗口裡,選擇應用程序設置,勾上空項目就行了。。。。。


然後手動在工程里創建一個CPP文件,自已加上#include<stdio.h>和intmain()就OK啦

㈣ vs2012自帶的是什麼編譯器

微軟自己的編譯器
vs/vc/bin/cl.exe

㈤ 自從安裝了vs2012老是提示#include<iostream>無法打開iostream,2010就沒這個問題,這是怎麼回事

您好,您是在windows XP下面編寫C++源程序嘛,下面我引用一般文章看能不能解決您的問題。
我們最近發布了Visual Studio(以下簡稱「VS」) 2012的產品線和所支持的平台,其中提到,我們正在評估加入一個選項,讓C++開發者在VS 2012中生成的應用程序可以在XP上運行,而不用去安裝VS 2010。現在我跟大家介紹下詳細情況。

背景:VS 2012所帶的C++運行時和程序庫使用了一些Windows Vista以及以上版本的系統特有的API,這導致使用VS 2012中的C++編譯器生成的應用程序不能在Windows XP上運行。Windows XP應用程序的開發者可以使用VS中針對C++程序的「多目標」功能,這樣就可以在VS 2012開發環境中調用VS 2010的編譯器。「多目標」功能允許開發者使用新版本IDE的新功能,而不必升級項目文件;也可以讓VS 2012使用VS 2010中的編譯器,從而使生成的應用程序可以在XP上運行。
評估多目標功能:VS 2012 Beta版本提供了使用和評估C++多目標功能的機會,部分Windows XP應用程序的開發者也使用過它。從在線反饋來看,客戶希望做到下面兩點,從而讓VS 2012更好得滿足Windows XP應用程序開發者的需求:
1、使用同一套編譯器和工具鏈生成支持Windows XP以及更高版本的應用程序,而不是使用(不同編譯器和工具鏈)為XP和Vista或以上版本分別構建應用程序。
2使用同一份代碼(允許使用C++11新功能)生成支持Windows XP以及更高版本的應用程序。

為了更好地滿足客戶關於支持XP平台的需求,我們決定增強多目標功能,以便直接使用VS2012的C++編譯器和程序庫,就可以生成支持Window XP的應用程序。

增強多目標功能 今年秋季,微軟將會提供一個VS 2012的更新,讓C++應用程序支持Windows XP平台。這個更新會修改VS 2012中的編譯器、運行時以及程序庫,使得開發者可以創建支持XP或更高版本系統的程序,同時也支持Windows Server 2003以及更高版本。我們最近宣布的VS 2012桌面版也會包含這個更新。

Steve Teixeira
Director of Program Management
Visual C++

㈥ 學C++用vc6.0還是vc10.0,或者是vs2010 vs2012

高級的工具慢慢學,時間長了就熟練了。個人認為VC++6.0比較小巧,啟動快,用起來也簡單,但缺點就是版本太老了,不過編一些基本的dos界面的程序足夠了。要想找符合標準的編譯器,還是推薦GUN,我現在再用一個開源的編譯器叫codeblocks,你要想用的話可以下載一個試試。

㈦ (求救)VS2012和2010編譯器問題,各問大神走過路過,幫幫忙!

VS2010和抄VS2012或者sv2008和VS2010,高版本VS編譯都會襲出現,使用VS2008的D:\Program Files\Microsoft Visual Studio 9.0\VC\bin目錄下的cvtres.exe替換到VS2010版本VS目錄下再編譯成功。
如果不行再用以下操作
上網搜索發現是嵌入清單的問題,於是對該工程以及所有依賴工程進行如下操作右鍵->工程屬性->配置屬性-> 清單工具->輸入和輸出->嵌入清單,選擇[否]
VS2010 2012CLR更換NET版本不像C#可以項目屬性直接更改,需要修改 *.vcxproj裡面 <PropertyGroup Label="Globals">節點添加以下內容
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
VS2012使用VS2010編譯vc++項目以支持XP系統運行,項目屬性 常規平台工具集選擇Visual Studio 2010 (v100),必須同時安裝VS2010 2012

㈧ 我用VS2012寫了一個MFC程序,Debug模式下編譯正確,可以生成.exe文件,現在想在沒裝VS的電腦上運行,

vs2012的編譯器默認在xp下就是不能運行的,不是有效的win32程序,因為鏈接的時候它默認把「最低需求的系統版本」開到vista了……安裝了某個ctp補丁之後,工程裡面工具集可以選vs2012 targeted xp,這樣編譯出來xp才能用。
release模式編譯不正確的的原因,呃,出錯信息你沒給出來啊,就這么一個「可能添加庫不兼容」到底添加了什麼庫也不說(汗)提示缺少各種dll文件到底缺少什麼也不說(汗汗)信息太少了,沒法判斷問題啊
不過反正你當時編譯debug的時候在工程選項裡面調的各種東西,release的時候也要重新再調一次:因為它倆的配置是分開保存的。
坐等樓主提供更多詳細信息

㈨ vs2012編寫的c#窗體程序在xp上跑不了,怎麼辦

微軟為了推銷自家平台,默認配置下VS2012和VS2013編寫的應用程序只能在Vista/Win7/Win8上運行。但幸好還保留了生成XP程序的設置項。XP和Win2003的用戶還是大量存在的,我們程序軟體的發布不能不考慮他們。

1.
項目菜單->項目屬性->配置屬性->常規->平台工具集,選擇「VS2013WindowsXP(v120_xp)」;

2. 項目菜單->項目屬性->配置屬性->常規->MFC的使用,選擇在靜態庫中使用MFC;

3.
項目菜單->項目屬性->鏈接器->系統->子系統->控制台或窗口windows(根據你的項目類型選擇),第二項版本號設成5.01。

4. C/C++->代碼生成->運行庫,選擇「多線程調試(/MTd)";

5. 還需要至少帶有Update3(或4),這一點我沒有驗證,因為我直接安裝的就是帶有Update3的VS2013。

以上就OK了。缺點仍然有,例如靜態編譯的EXE比正常動態要大不少,目前我尚未試出動態編譯後在XP中能運行的方法,--不過這個不要緊,因為VS2013版本如此之高,客戶的電腦上很難自帶配有它的運行庫,你即使動態編譯,發布軟體時也還是要帶上運行庫的,只不過在多個程序時只需帶一份運行庫罷了。

另外,我在實際大項目中用上述方法,仍有出錯現象發生。以後再研究吧。一般情況下上述方法就可以了。

在網上另外發現了這個貼子,說得很詳細,包括非IDE的命令行編譯,一起貼到下面:

問題一:編譯出來的exe在xp上面運行提示「不是有效的win32應用程序」

在vs2012/2013版本裡面,其自帶的c編譯器cl.exe,若直接使用cl
a.c編譯,那麼生成出來的exe放在vista及以上版本直接運行沒有問題,但是在xp上則會出來「不是有效的win32應用程序」的出錯提示。這是因為vs2012/2013自帶的c編譯器默認情況下生成的exe會默認只支持vista及以上版本的windows系統。

解決方法:

對於使用命令行cl.exe直接編譯的方式:

先用cl a.c編譯一遍,此時會生成a.exe和a.obj兩個文件,此時,再執行 link b.obj
/subsystem:console,5.01,它會鏈接一個新的a.exe出來,此時的exe就可以在xp上運行了。相比vs2010以及以前版本的編譯器編譯,會多第二步的link過程,後面的參數也很容易理解,subsystem,5.01,此處的5.01是指的windows內核版本號,5.01表示windows
2000 with sp1,即此exe可以在win2000 sp1及以上的windows中執行。

當然,這個地方的/subsystem後面有很多參數,上面給的console,5.01是指命令行程序,如果是有GUI即有窗口的程序,改成windows,5.01即可。!!注意!!此處的5.01一定不要想當然改成5.0就變成windows
2000
不帶sp1的版本,實際上,5.0並不被vs2013的編譯所承認,會報警告不認5.0,就會按照默認的不帶5.01的方式編譯,這樣就無法在vista以下的系統中運行生成的exe了。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「常規」裡面,把「平台工具集」,由「Visual Studio 2013
(v120)」改成「Visual Studio 2013 - Windows XP
(v120_xp)」,確定之後,重新生成項目即可。當然這里按這樣修改的話,就只能在winxp及以上的版本系統裡面運行了。

問題二:用vs2010/2012/2013編譯出來的exe在未安裝vc++運行庫的機器上運行時提示」未找到MSVCR120D.DLL「從而無法運行

這是個老問題了,無非就是運行庫動態編譯和靜態編譯的問題了。dll動態載入的話有個好處,它可以減少生成的exe文件的體積,但是缺點就是如果對應的系統環境變數或者exe所在的目錄裡面找不到其所需要的dll文件的話,程序就會拒絕執行。而靜態編譯就是把所有需要的庫都靜態編譯到exe文件裡面,這樣就可以在所有的系統平台上都能運行,但它也有一個缺點,就是生成的exe文件因為已經帶了部分庫的代碼,所以體積會相對動態編譯出來的exe大(具體大多少要根據庫的內容才能確定)。

解決方法:

對於直接使用cl.exe和link.exe編譯連接的方式:

直接在cl.exe編譯的時候或者在makefile裡面把編譯參數加上/MT即可。

對於在vs2013裡面使用新建項目的方式:

右擊相應的項目,選擇「屬性」,在項目屬性頁中的「配置屬性」下面的「C/C++」下面的「代碼生成」一項,由默認的「多線程調試DLL
(/MDd)」,改成「多線程 (/MT)」,確定之後,重新生成項目即可。這樣所得的exe文件就是靜態編譯了。

㈩ 為什麼VC6編譯出的東西跟VS2012運行結果完全不同

首先,VC6是90年代的,VS2012是10年代的,這么多年了,VC++編譯器的實現肯定已經改變了。出現運行結果不同的情況是很正常的,C和C++語言標准有許多未定義的行為,編譯器實現改變,對這些未定義行為的預定也會存在改變。

其次,VC6對C++的標准支持度不是很高,而且C++98和C++11也有很大區別。舉個例子,for (int i = 0;;);這句話,在VC6裡面的i就存在「污染」,並非for內局部變數,而根據C++標准,這里的i是不能作用到for外面的。VS2012對C++標準的支持度提高許多,那麼這種不規范的行為都會被矯正。那麼VC6與VS2012的結果大相庭徑也是可以理解的。

建議題主使用新版本的編譯器來比較。比如使用gcc 4.8以上而不是VC++6.0,來與VS2012比較。這樣才能驗證代碼的正確性。

順便一提,VS2012也有許多不標準的地方,一般認為gcc是比較嚴格遵守標準的。

閱讀全文

與vs2012編譯器版本相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接