當前位置:首頁 » 編程軟體 » 使用預編譯頭

使用預編譯頭

發布時間: 2022-05-09 01:53:13

⑴ unexpected end of file while looking for precompiled header directive 什麼意思

在該cpp文件的最頂處插入
#include "stdafx.h"

這個是微軟的硬性規定,當初就是這么設計的,使用預編譯技術,必須要將那些預編譯的頭文件放置在每個cpp文件的最頂處,而預編譯的頭文件聲明是放在stdafx.h文件中的。
stdafx.h中的的聲明是項目中每個cpp文件都需要包含的,而且要一致。
如下:
1. 正確
#include "stdafx.h"
#include <stdio.h>
int main(){...}
...
2.正確
#include "stdafx.h"
...
3.錯誤
#include <stdio.h>
#include "stdafx.h"
int main(){...}
4.錯誤(樓主應該是這種寫法導致的錯誤)
#include <stdio.h>
int main(){...}

上述情況都是在你講選項中的使用預編譯頭文件勾選上的時候。。。。沒有使用預編譯頭文件則沒有這些要求。

⑵ 關於使用預編頭和創建預編譯頭有什麼區別

在vs2013下測試了一下,選中與否生成的項目結構是一樣的。如果不選中預編譯頭,只保留mycpp1.cpp並作出相應修改,構建是可以通過的。如果是勾選了預編譯頭,只保留mycpp1.cpp是不可以編譯通過的。正如最快回答中所說的,不選中,stdafx.h只是個普通的頭文件,產生的文件結構一樣只是採用了同一個模板而已。如果你仔細查看過工程的屬性里有個選項就是預編譯頭,創建項目的時候預編譯頭的勾選與否,對應的就是這里這個選項,對應到編譯階段就是是否查找stdafx.h並且將它視為預編譯頭。

⑶ visual studio 2019怎麼在新建工程的時候自動添加預編譯頭文件

看上去應該是可以的,你把滑鼠移到紅線上面看看是啥錯誤
我覺得有可能是String.h,String類在內庫中已經有了,要麼就是用法不規范什麼的

⑷ VC中".pch"是什麼文件,沒有.pch文件怎麼辦(ZZ)

.pch文件是 用來預編譯頭文件用的,如果生成.pch文件,上次編譯的部分頭文件,下次就不用重新再編譯了。
所謂的預編譯頭就是把一個工程中的那一部分代碼,預先編譯好放在一個文件里(通常是以.pch為擴展名的),這個文件就稱為預編譯頭文件這些預先編譯好的代碼可以是任何的 C/C++代碼--------甚至是inline的函數,但是必須是穩定的,在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。注意生成預編譯頭文件是很耗時間的。同時得注意預編譯頭文件通常很大,通常有6-7M大。注意及時清理那些沒有用的預編譯頭文件。
編譯器是以文件為單位編譯的,一個文件經過修改後,會重新編譯整個文件,當然在這個文件里包含的所有頭文件中的東西(.eg Macro, Preprocesser )都要重新處理一遍。VC的預編譯頭文件保存的正是這部分信息。以避免每次都要重新處理這些頭文件。
預編譯頭的作用:
根據上文介紹,預編譯頭文件的作用當然就是提高便宜速度了,沒有必要每次 都編譯那些不需要經常改變的代碼。編譯性能當然就提高了。
預編譯頭的使用:
要使用預編譯頭,我們必須指定一個頭文件,這個頭文件包含我們不會經常改變的代碼和其他的頭文件,然後用這個頭文件來生成一個預編譯頭文件(.pch文件)StdAfx.h這個文件。這是VC提供的一個「系統級別」的,編譯器帶的一個頭文件。其實不是的,這個文件可以是任何名字的。 典型的由AppWizard生成的MFC Dialog Based程序的預編譯頭文件。(因為AppWizard 會指定好如何使用預編譯頭文件,默認的是StdAfx.h,這是VC起的名字)。發現這個頭文件里包含了以下的頭文件:
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdisp.h> // MFC Automation classes
#include <afxdtctl.h> // MFC support for Internet Explorer 4
Common Controls
#include <afxcmn.h>
這些正是使用MFC的必須包含的頭文件
一個頭文件是不能編譯的。所以還需要一個cpp文件來生成.pch 文件。這個文件默認的就是StdAfx.cpp。在這個文件里只有一句代碼就是:#include 「Stdafx.h」。原因是理所當然的,僅僅是要它能夠編譯而已?D?D?D也就是說,要的只是它的.cpp的擴展名。可以用/Yc編譯開關來指
定StdAfx.cpp來生成一個.pch文件,通過/Fp編譯開關來指定生成的pch文件的名字。打 開project ->Setting->C/C++ 對話框。把Category指向Precompiled Header。在左邊的樹形視圖里選擇整個工程Project Options(右下角的那個白的地方)可以看到 /Fp 「debug/PCH.pch」,這就是指 定生成的.pch文件的名字,默認的通常是<工程名>.pch(示例工程名就是PCH)。 然後,在左邊的樹形視圖里選擇StdAfx.cpp.//這時只能選一個cpp文件! 這時原來的Project Option變成了 Source File Option(原來是工程,現在是一個文件,當然變了)。在這里可以看到 /Yc開關,/Yc的作用就是指定這個文件來創建一個 Pch文件。/Yc後面的文件名是那個包含了穩定代碼的頭文件,一個工程里只能有一個文件的可以有YC開關。VC就根據這個選項把 StdAfx.cpp編譯成一個Obj文件和一個PCH文件。
然後再選擇一個其它的文件來看看,//其他cpp文件
在這里,Precomplier 選擇了 Use ???一項,頭文件是指定創建PCH 文件的stda fx.h 文件。事實上,這里是使用工程里的設置,(如圖1)/Yu」stdafx.h」。這樣,就設置好了預編譯頭文件。就可以使用預編譯頭功能了。

⑸ 使用預編譯的頭文件和CMake問題,怎麼解決

應該是你的板子是用/opt/arm-2010.09.../include/bits編譯
pc機是用/usr/include/bits編譯,在arm上編譯的時候前者的頭文件內容要和後者一直
另外,沒有指定目錄的情況下cmake是不會去搜尋/opt/目錄下的文件夾,看下是哪裡寫錯了!

⑹ 代碼中兩個預編譯頭的作用是什麼

#define WIN32
#define HAVE_REMOTE
你是說這兩個是吧?這個一般用於代碼的移植,比如一個工程想在window和linux下均能運行,但window和linux系統中有些定義、系統調用都不同,就需要上面的那種定義了。比如
#ifdef WIN32
WIN_printf("xxxxx\r\n");
#elif define LINUX
LINUX_printf("xxxxx");
#endif
用了上面的條件編譯,那麼這個代碼就從window上面移植到linux上只需要把#define WIN32去掉,再加上#define LINUX就行了

⑺ C++中總是出錯 #include "stdafx.h"

首先,是沒有stdafx.h這個頭文件,可以下載一個,放到安裝安裝目錄下的vc++6.0\vc98\mfc\include,你可以先在里邊查找有沒有這個頭文件。
還有int
main(int
argc,char
argv[]
)和void
main
()不一樣,返回值類型不一樣,一個是int型,一個無參數返回,int
argc,char
argv[]指主函數有參數傳遞進來,而括弧為空表示沒有。返回值和參數好比函數y=f(x),y為返回值,x為參數,f就為函數名,這里,int表示y的類型,main代替f,x也就是整型argc和指針argv了。

⑻ 怎麼在visual c++裡面寫c語言·難道只改改後綴就行了這樣是不是不能用預編譯頭預編譯頭用來幹啥

確實只需要改後綴就可以了
預編譯都支持的

lib分兩種:系統自帶的,或者第三方的
自帶的不需要復制,設置好就行
第三方的可以復制到工程,也可以設置(指定路徑)
lib文件復制過去,或者在設置裡面設置,或者用#pragma comment(lib,"**.lib")都可以

⑼ visual studio 預編譯頭有什麼用

編譯器預編譯一些不容易變動的頭文件,提高整個項目的生成速度。 對於大項目使用預編譯頭可以大大減少編譯時間。

熱點內容
subplotpython 發布:2025-05-14 06:53:51 瀏覽:660
豎屏大屏導航工廠密碼一般是多少 發布:2025-05-14 06:49:29 瀏覽:805
如何在手機里設置無線網密碼 發布:2025-05-14 06:47:54 瀏覽:119
動態ip文件伺服器 發布:2025-05-14 06:44:22 瀏覽:890
文字分行的腳本有什麼 發布:2025-05-14 06:33:10 瀏覽:288
svn小烏龜怎麼配置 發布:2025-05-14 06:31:43 瀏覽:393
視頻播放器android 發布:2025-05-14 06:31:43 瀏覽:720
android工作室 發布:2025-05-14 06:26:00 瀏覽:658
汽車官方配置表如何下載 發布:2025-05-14 06:21:41 瀏覽:800
停車項目源碼 發布:2025-05-14 06:20:05 瀏覽:358