vs使用預編譯頭
❶ VC++里的 預編譯頭 是什麼意思,幹嘛用的
一、什麼是預編譯頭?
預編譯頭物理上與通常的的.obj文件是一樣的,但編譯入預編譯頭的.h,.c,.cpp文件在整個編譯過程中,只編譯一次,如預編譯頭所涉及的部分不發生改變的話,在隨後的編譯過程中此部分不重新進行編譯。進而大大提高編譯速度,並便於對頭文件進行管理,也有助於杜絕重復包含問題。
二、什麼時候使用預編譯頭?
當大多.c或.cpp文件都需要相同的頭文件時。
當某些代碼被大量重復使用時。
當導入某些不同庫都有實現的函數,並產生混亂時。
❷ vs2010里win32項目選了預編譯頭後,程序里怎麼是_tmain為什麼和書上winmain不
兩個都是開發在windows平台上運行的程序,能用mfc開發的,為什麼要用win32api來開發呢,象一些windows上運行的3d引擎,都是用win32 api開發的,所以進行二次開發肯定是用win32 api,但是其他一些MS系統好像沒有必要用api,用mfc就可以了,反正編...
❸ vs2008下如何調試C++,初次使用,怎麼調試啊 在查找預編譯頭時遇到意外的文件結尾。求大神指點
解決方法是在在include頭文件的地方加上#include "stdafx.h",或者打開項目屬性,找到「C/C++」標簽頁,單擊「預編譯頭」屬性頁。修改「創建/使用預編譯頭」屬性為「不使用預編譯頭」。
❹ visual studio 2019怎麼在新建工程的時候自動添加預編譯頭文件
看上去應該是可以的,你把滑鼠移到紅線上面看看是啥錯誤
我覺得有可能是String.h,String類在內庫中已經有了,要麼就是用法不規范什麼的
❺ vs2008添加預編譯命令
以預編譯頭文件為Stdafx.h為例:
Qt Creator中很簡單,只需在.pro文件中加入一行PRECOMPILED_HEADER = stdafx.h
VS2008在工程中在Stdafx.h文件上右鍵propertis-Configuration Properties-C/C++-Precompiled Headers-Create/Use Precompiled Header中選擇Create Precompiled Header(/y).
有一點注意的是,在工程Generated Filed中的moc相關文件也需要選上Use Precompiled Header (/Yu).
❻ 關於使用預編頭和創建預編譯頭有什麼區別
在vs2013下測試了一下,選中與否生成的項目結構是一樣的。如果不選中預編譯頭,只保留mycpp1.cpp並作出相應修改,構建是可以通過的。如果是勾選了預編譯頭,只保留mycpp1.cpp是不可以編譯通過的。正如最快回答中所說的,不選中,stdafx.h只是個普通的頭文件,產生的文件結構一樣只是採用了同一個模板而已。如果你仔細查看過工程的屬性里有個選項就是預編譯頭,創建項目的時候預編譯頭的勾選與否,對應的就是這里這個選項,對應到編譯階段就是是否查找stdafx.h並且將它視為預編譯頭。
❼ visual studio 預編譯頭有什麼用
編譯器預編譯一些不容易變動的頭文件,提高整個項目的生成速度。 對於大項目使用預編譯頭可以大大減少編譯時間。
❽ VS2010中C編程問題
#include <stdio.h>這個頭文件是國際標准頭文件,寫標准代碼時,只需要包含這個。。
而#include "StdAfx.h"是微軟vc的預編譯頭模塊,非國際標准。
預編譯頭能加速大程序的編譯過程。
你可能在項目哪裡設置了「使用預編譯頭」,但又沒有在代碼中寫上#include "StdAfx.h"
所以會出錯。加上即可。
或者取消使用預編譯頭,就不寫。這2種方式微軟vc都兼容。
❾ vs2010怎麼預編譯頭文件
清理解決方案。。然後重新生成
❿ VS中C++程序系統都要加個"stdafx"頭文件,這個干什麼用的
stdafx.h : 標准系統包含文件的包含文件
VC創建項目時自動創建的預編譯頭文件,在編譯其他文件之前,VC先預編譯此文件。頭文件stdafx.h引入了項目中需要的一些通用的頭文件,比如window.h等,在自己的頭文件中包括stdafx.h就包含了那些通用的頭文件。
所謂頭文件預編譯,就是把一個工程(Project)中使用的一些MFC標准頭文件(如Windows.H、Afxwin.H)預先編譯,以後該工程編譯時,不再編譯這部分頭文件,僅僅使用預編譯的結果。這樣可以加快編譯速度,節省時間。
預編譯頭文件通過編譯stdafx.cpp生成,以工程名命名,由於預編譯的頭文件的後綴是「pch」,所以編譯結果文件是projectname.pch。
編譯器通過一個頭文件stdafx.h來使用預編譯頭文件。stdafx.h這個頭文件名是可以在project的編譯設置里指定的。編譯器認為,所有在指令#include "stdafx.h"前的代碼都是預編譯的,它跳過#include "stdafx. h"指令,使用projectname.pch編譯這條指令之後的所有代碼。
因此,所有的CPP實現文件第一條語句都是:#include "stdafx.h"。