『壹』 影響vs編譯速度的因素有哪些
影響因素比較多:
1 文件的大小,文件大小指的是全部include展開後的大小。
2 文件數量,編譯是一個一個文件進行的,所以你的工程的文件數量也有關系。
3 還有聲明的復雜程度,復雜聲明需要額外地計算。
4 最影響編譯速度的估計是C++的模板,模板在編譯的時候要進行推導,得到相應的結果,這個非常費時間。如果你是模板里還套了模板,那就比較慢了。
5 鏈接庫的數量,鏈接很多庫也會使得編譯速度變慢。
6 inline函數展開,會使得代碼膨脹,也會影響編譯速度
7 debug模式編譯要留符號表做調試,也會影響速度
8 release模式如果開了優化,編譯優化會改變代碼的某些結構,這也是拖慢編譯器的一個重要因素。
『貳』 高手們來看看VS2010 中編譯器設置都是什麼意思(其實VS2008也差不多吧),誰能詳細的給說一下,萬分感謝了
這是C/C++編譯優化設置部分
第一行,啟用的優化等級,這里優化被禁止了
第二行,內聯函數,表示是否展開,還是以函數形式存在
第三行,是否啟用內部函數
使用內部函數的代碼比較快,因為它們沒有函數調用的系統開銷。但由於創建了附
加代碼,代碼尺寸可能比較大。
第四行,優化方式,速度優先還是代碼尺寸優先;通常會選擇速度優先,現在尺寸已不是問題
第五行,是否禁止在調用堆上創建框架指針,以加快函數調用;堆內存分配演算法需要時間
第六行,是否啟用纖程安全的線程本地存儲優化
第七行,是否啟用全局鏈接時代碼優化;指的是生成具體指令過程推遲到鏈接的時候,這樣有
助於具體的一些優化,比如,函數內部變數,有些可以是寄存器變數,沒必要再
棧里分配,寄存器訪問比內存訪問快很多,這些都依賴於函數的調用拓撲等關系。
『叄』 vs2015中怎麼打開c語言編譯器
vs中c和c++的編譯器是同一個,vs會自動根據擴展名、代碼自動調用不同的編譯參數來對代碼進行編譯。
『肆』 怎樣在vs2013中使用icc英特爾編譯器
自帶編譯器,編譯C/C++的cl.exe,編譯C#的csc.exe。
在VS的安裝目錄下找到一個vscvarsall.bat(我的在D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC下),把它拖進命令提示符中,回車運行後就能單獨使用編譯器。
PS:
C/C++編譯:cl 源文件.c/cpp
C#編譯:csc 源文件.cs
1. 「cl不是可用的內部命令或可執行程序」
----原因:環境變數Path沒有設置好。
----解決:在環境變數Path中添加VC的bin目錄。Path= D:\Microsoft Visual Studio 9.0\VC\bin。在D:\Microsoft Visual Studio 9.0\VC\ce\bin下還有其他一些編譯器,看名字是交叉編譯用的
2.「mspdb80.dll無法找到」
----原因:vs2008的VC\bin目錄下缺少msobj80.dll、mspdb80.dll、mspdbcore.dll、mspdbsrv.exe這四個文件。
----解決:在D:\Microsoft Visual Studio 9.0\Common7\IDE下復制這四個文件到VC\bin。
3.解決以上問題以後,可以直接在命令行的任何目錄下編譯C/C++文件了。可是又出現新狀況:
「fatal error: cannot open include file」
----原因:vs2008未設置include和lib的環境變數。
----解決:
3.1在環境變數里添加變數INCLUDE,包含進VC\Include和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include(這個是安裝vs時自動安裝在C盤的)兩個目錄
INCLUDE=D:\Microsoft Visual Studio 9.0\VC\include; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include
3.2添加變數LIB,包含進VC\lib和C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib(這個也是安裝vs時自動安裝在C盤的)兩個目錄:
LIB=D:\Microsoft Visual Studio 9.0\VC\lib; C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
4.提示:fatal error LNK1104: 無法打開文件「kernel32.lib」,(在IDE裡面運行沒有問題,因為IDE中採用了另外的封裝了庫)
----原因:vs2008未設置include和lib的環境變數。
----解決:在環境變數里添加變數LIB,C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib
或者將kernel32.lib直接到vc的lib目錄下也可以
『伍』 VS 2010 C++編譯器/鏈接器中新的基於配置的優化選項有哪些
PogoSafeMode關鍵字是一個新的基於配置的優化選項。可以使用PogoSafeMode關鍵字來指定開發者想使用安全模式還是快速模式來優化的應用程序。
『陸』 如何提高vs2010編譯速度
如果你的cpu夠強你應該學會如何利用好它來加速你的代碼編譯速度,那麼你怎麼才能夠最大限度讓你的cpu發燒呢?
下面是一個對比:
比如我的cpu是i7 3770k,
編譯cocos2d-x的libcocos2d工程:
不優化:
1>Time Elapsed 00:01:35.25
優化後:
1>Time Elapsed 00:00:21.66
效果顯著!!!
參考網頁:
Visual Studio 2010中C++並行構建調優(1)
http://developer.51cto.com/art/201003/189235.htm
1>cl : Command line warning D9030: '/Gm' is incompatible with multiprocessing; ignoring /MP switch
解決辦法是:
Properties -> Configuration Properties -> C/C++ -> Code Generation -> Enable Minimal Rebuild -> No(/Gm-)
Properties -> Configuration Properties -> C/C++ -> Geneal -> Multi-processor Compilation -> Yes(/MP)
一些含義和拓展資料:
Enable minimal rebuild
通過保存關聯信息到.IDB文件,使編譯器只對最新類定義改動過的源文件進行重編譯,提高編譯速度
Enable Incremental Compilation
同樣通過.IDB文件保存的信息,只重編譯最新改動過的函數
/MP (Build with Multiple Processes)
http://msdn.microsoft.com/en-us/library/bb385193.aspx
/Gm (Enable Minimal Rebuild)
http://msdn.microsoft.com/en-us/library/kfz8ad09.aspx