vc6.o--fatal error C1010錯誤的解決

當編譯c文件時,出錯信息為:fatal error C1010: unexpected end of file while looking for precompiled header directive
=================================================================================

解決方案:

1、如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的,則Alt+F7進入當前工程的 Settings,選擇C/C++選項卡,從Category組合框中選中Precompiled Headers,選擇Not Using Precompiled headers。確定。
2、在文件開頭添加:
#include "stdafx.h"
=================================================================================
以下為原文:
今天在寫程序的時候,突然發現要測試的代碼是用c寫的,還是用gcc編譯的,可是我已經建立了測試的相關環境,沒辦法,只能一步步的改了,將相關的頭文件、結構和變量移植以后,編譯了一下(只編譯了C文件),竟然出錯,出錯信息為:fatal error C1010: unexpected end of file while looking for precompiled header directive
然后無論怎么改代碼都是這一句出錯信息,最后改成了一個最簡單的空函數,仍然不行,改成cpp文件,然后前面加上#include "stdafx.h",編譯通過,再改成c文件,還是出錯,然后郁悶了半天,后來想到是編譯器問題,改了半天設置也沒搞定,最后沒辦法只好去網上求助了,輸出precompiled header directive,想不到網上那么多的結果,看了幾篇,輕松搞定,真后悔沒有早點在網上搜索,浪費了不少時間。。
?
解決方法:
1、如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的,則Alt+F7進入當前工程的 Settings,選擇C/C++選項卡,從Category組合框中選中Precompiled Headers,選擇Not Using Precompiled headers。確定。
2、在文件開頭添加:
#include "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"。
?
?------------------------------------
?unexpected end of file while looking for precompiled header directive Error executing cl.exe.我在文件頭上添加了:
#include "stdafx.h" 還是不能運行,請多指教!
Alt+F7進入當前工程的Settings,選擇C/C++選項卡,從Category組合框中選中Precompiled Headers,選擇Not Using Precompiled headers。確定。
如果發生錯誤的文件原本是該工程中的,則檢查該文件頭部有沒有#i nclude "stdafx.h"語句,沒有的話添加。
如果還不行,也有可能是定義的類或結構體等最后忘了加分號,注意一下
------------------------------------------
問題:我在編譯程序中老出現“fatal error C1010: unexpected end of file while looking for precompiled header directive”這一句,但我查看了程序并沒有錯,請問這是怎么一回事?
A回答:
??? 肯定是一個新添加的類的.cpp文件開頭沒包含stdafx.h,在該文件最前面加上即可。
????
BOBO的意見:
??? 有時可以使用右鍵點擊項目工程中的該cpp文件,選擇setting,在c/c++欄,選擇PreCompiled headers,然后設置第一選項,選擇不使用預編譯頭,解決這個問題。
---------------------------------------
編譯出現問題:unexpected end of file while looking for precompiled header directive
解決方案:
需要在文件頭上添加一句:
#include "stdafx.h"
這個文件定義了源程序為C++格式。
否則文件需要保存為.C格式
?--------------------------------
?錯誤:fatal error C1083: Cannot open precompiled header file: 'Debug/test4.pch': No such file or directory
解決方案:
或rebuild all,或重新編譯一下stdafx.cpp就OK了,呵呵,又長知識了。
?
---------------------------------
?
今天在改一個很大的程序,慢慢看,慢慢改。突然發現一個.c文件,里面什么也沒有, 就幾個頭文件,我一看,我靠,這不是把簡單的問題搞復雜了嗎,隨手刪掉那個c文件。 結果不能編譯了,我靠:
fatal error C1083: Cannot open precompiled header file: /'Debug/v13_3.pch/':
No such file or directory
怎么rebuild all都不行。
上網查了一下,才搞懂了:
----------------總結------
如果工程很大,頭文件很多,而有幾個頭文件又是經常要用的,那么
1。把這些頭文件全部寫到一個頭文件里面去,比如寫到preh.h
2。寫一個preh.c,里面只一句話:#include "preh.h"
3。對于preh.c,在project setting里面設置creat precompiled headers,對于其他.c文件,設置use precompiled header file
//
哈哈
我試了一下,效果很明顯,不用precompiled header,編譯一次我可以去上個廁所,用 precompiled header,編譯的時候,我可以站起來伸個懶腰,活動活動就差不多啦
---------轉載的文章----------
預編譯頭的概念:
所謂的預編譯頭就是把一個工程中的那一部分代碼,預先編譯好放在一個文件里(通常是以.pch為擴展名的),這個文件就稱為預編譯頭文件這些預先編譯好的代碼可以是任何的 C/C++代碼--------甚至是inline的函數,但是必須是穩定的,在工程開發的過程中不會 被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。注意生成預編 譯頭文件是很耗時間的。同時你得注意預編譯頭文件通常很大,通常有6-7M大。注意及 時清理那些沒有用的預編譯頭文件。 也許你會問:現在的編譯器都有Time stamp的功能,編譯器在編譯整個工程的時候,它 只會編譯那些經過修改的文件,而不會去編譯那些從上次編譯過,到現在沒有被修改過的文件。那么為什么還要預編譯頭文件呢?答案在這里,我們知道編譯器是以文件為單 位編譯的,一個文件經過修改后,會重新編譯整個文件,當然在這個文件里包含的所有 頭文件中的東西(.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”。原因是理所當然的,我們僅僅是要它能夠編譯而已,也就是說,要的只是它的.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 Precompiled Header 一項,頭文件是我們指定創建PCH 文件的stdafx.h 文件。事實上,這里是使用工程里的設置,(如圖1)/Yu”stdafx.h”,這樣我們就設置好了預編譯頭文件,也就是說,我們可以使用預編譯頭功能了。
?
?
以下是注意事項:
1):如果使用了/Yu,就是說使用了預編譯,我們在每個.cpp文件的最開頭,我強調一遍是最開頭,包含你指定產生pch文件的.h文件(默認是stdafx.h)不然就會有問題。如果你沒有包含這個文件,就告訴你Unexpected file end. 如果你不是在最開頭包含的,
你自己試以下就知道了,絕對有很驚人的效果?..
fatal error C1010: unexpected end of file while looking for precompiled
header directive
Generating Code...
?
2)如果你把pch文件不小心丟了,編譯的時候就會產生很多的不正常的行為。根據以上的分析,你只要讓編譯器生成一個pch文件,也就是說把 stdafx.cpp(即指定/Yc的那個cpp文件)從新編譯一遍,當然你可以傻傻的 Rebuild All,簡單一點就是選擇那個cpp文件,按一下Ctrl + F7就可以了,不然可是很浪費時間

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lingang_/archive/2009/01/24/3852436.aspx

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374963.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

具有Java 7中自動資源管理功能的GC

這篇文章簡要概述了Java 7中引入的稱為自動資源管理或ARM的新功能。 文章探討了ARM如何減少開發人員為有效釋放分配的資源的JVM堆而必須編寫的代碼。 Java編程語言中編程的最甜蜜之處之一是對象取消分配的自動處理。 在Java世界中&#xff0c;這通常被稱為垃圾收集。 基本上&am…

PHP學習筆記(六)

《Wordpress 50個過濾鉤子》 1-10 過濾鉤子是一類函數&#xff0c;wordpress執行傳遞和處理數據的過程中&#xff0c;在針對這些數據做出某些動作之前的特定點執行。本質上&#xff0c;就是在wordpress輸出之前&#xff0c;將對瀏覽數據做出反應。 添加過濾鉤子&#xff1a; ad…

JS 操作 radio input(cc問卷管理)

1、選中特定的單選按鈕 function showDetail(content){$("input[name^radio]").removeAttr("checked");for(var i0;i<content.length;i){$("#radio"(i1)content.substr(i,1)).attr("checked","checked");} }2、手動添加問…

國內外著名黑客雜志

國外黑客雜志&#xff1a; 《phrack》黑客雜志 http://www.phrack.org 《phrack》創刊于80年代&#xff0c;是世界級的頂級黑客雜志&#xff0c;每年只有一期&#xff0c;現已出了65期&#xff0c;國人似乎至今只有三人在上面發表發表文章&#xff0c;三人好像都是綠盟的人&…

團體項目隨筆

我們的團體項目不僅在在課堂上討論了很久&#xff0c;課后也是幾經討論。每個人都有不同的想法我特別想做一個基于Web編寫的驢客網&#xff0c;因為基于個人需求&#xff0c;在最終的討論中被斃掉。 我們組最終的的討論結果是寫個游戲&#xff0c;關于游戲的發展&#xff0c;這…

Apache Lucene拼寫檢查器的“您是不是要”功能

Google的“您是不是要”功能 在上一篇文章中對Lucene進行了介紹之后 &#xff0c;現在是時候提高它&#xff0c;創建一個更復雜的應用程序了。 您肯定最熟悉Google的“您是不是要”功能&#xff08;其他搜索引擎也支持此功能&#xff09;。 這是一個例子&#xff1a; Lucene …

Android-做個性化的進度條

1.案例效果圖 2.準備素材 progress1.png(78*78) progress2.png(78*78) 3.原理 采用一張圖片作為ProgressBar的背景圖片(一般采用顏色比較淺的)。另一張是進度條的圖片(一般采用顏色比較深的圖片)。進度在滾動時&#xff1a;進度圖片逐步顯示&#xff0c;背景圖片逐…

匯編小記16/3/27

最后更新2016-03-27 21:05:06 [address]與[bx] [address] 在debug中mov ax,[0] 等價于mov ax,ds:[0] [0]表示內存偏移地址 但是在masm匯編解釋器中&#xff0c;mov ax,[0] 等價于mov ax,0 [0]表示常量0 [bx] mov ax,[bx] 表示 bx存放的數據為一個偏移地址&#xff0c;段…

ConcurrentLinkedHashMap v 1.0.1發布

大家好&#xff0c;我們發布了并發LinkedHashMap實現的1.0.1版本。 在最新版本中&#xff0c;已進行了一些較小的修改&#xff0c;以在多個線程遍歷映射的元素時提高性能。 最新版本還引入了可插拔驅逐策略。 當然&#xff0c;您可以實現自定義逐出策略&#xff0c;也可以將它…

BOMbing The System

roy g bivFebruary 2011 [Back to index] [Comments (0)] What is a BOM? Why should we care? Great, can we do that? Okay, lets do it! Unicode in files Greets to friendly people (A-Z) What is a BOM? Its not the thing that explodes. Thats a BOMB. Heh. BO…

鳥哥的linux私房菜學習筆記 ---第7章-2

1,文件內容查閱的命令: cat ,tac nl,more, less,head,tail ,od 文件的查閱參數,顯示行號如何顯示行號 nl 中的所有參數都是關于如何顯示行號的 這里面less的功能更多,更靈活 :空格 下一頁 pageup上一頁 pagedown 下一頁 /string 字符串查詢 ?string 反向字符串查詢 man的命…

HDU - 4497 GCD and LCM

題意&#xff1a;給出三個數的gcd,lcm&#xff0c;求這三個數的全部的可能 思路 &#xff1a;設x,y,z的gcd為d&#xff0c;那么設xd*a&#xff0c;yd*b&#xff0c;zd*c。a&#xff0c;b。c肯定是互質的。那么lcmd*a*b*c,所以我們能夠得到a*b*clcm/gcdans,將ans分解因數后&…

Java Lambda語法替代

關于lambda-dev郵件列表的討論已經開始解決lambdas /函數文字的Java語言語法應該是什么樣的問題。 讓我們看一個稍微平凡的例子&#xff0c;然后嘗試弄清楚問題。 Perl的人有一個很好的例子&#xff0c;說明以某種功能性的方式使用函數引用–他們稱其為Schwartzian變換&#xf…

淺析SMC技術

今天讓我們來看Win32ASM里面的高級一點的技術——SMC&#xff08;當當當當……&#xff09;&#xff01;&#xff01;&#xff01;SMC是什么意思&#xff1f;它的英文名叫“Self Modifying Code”&#xff0c;顧名思義&#xff0c;就是“代碼自修改”&#xff08;&#xff1f;&…

JAVA基礎--程序是順序執行的

class Testa {public static void main(String[] args) {String aa"aaa";String bb"bbb"aa;aa"cccc";System.out.println(bb);} } 輸出的是 “bbbaaa class Testa {public static void main(String[] args) {String aa"aaa";String …

Spring MVC攔截器示例

我以為是時候看看Spring的MVC攔截器機制了&#xff0c;這種機制已經存在了很多年&#xff0c;并且是一個非常有用的工具。 Spring Interceptor會按照提示進行操作&#xff1a;在傳入的HTTP請求到達您的Spring MVC控制器類之前對其進行攔截&#xff0c;或者相反&#xff0c;在其…

Android 調用系統的分享[完美實現同一時候分享圖片和文字]

android 系統的分享功能 private void share(String content, Uri uri){Intent shareIntent new Intent(Intent.ACTION_SEND); if(uri!null){//uri 是圖片的地址shareIntent.putExtra(Intent.EXTRA_STREAM, uri);shareIntent.setType("image/*"); //當用戶選擇短信時…

團隊行為守則—如果你們由我來領導

&#xfeff;&#xfeff;如果你是在我領導的團隊里&#xff0c;有幾個額外的事情我要告訴你。我深信這些行為守則是一個高效團隊的潤滑劑&#xff0c;我并不只是要求別人這樣做&#xff0c;我自己也嚴格恪守。 只有三樣事&#xff1a; 問&#xff1a;如果你對任務不清楚&#…

做短,但做對!

編寫簡潔&#xff0c;優雅&#xff0c;清晰的代碼一直是開發人員的艱巨任務。 您的同事不僅會感謝您&#xff0c;而且您會驚訝地發現&#xff0c;不斷期待著重構解決方案以更少的代碼完成更多&#xff08;或至少相同&#xff09;的工作是多么令人興奮。 曾經有人說好的程序員是…

math

莫比烏斯反演&#xff1a; $F(n) \sum\limits_{d|n} {f(d)} \Leftrightarrow \sum\limits_{d|n} {\mu (d)F(\frac{n}{d})} $ 其中 ${\mu (d)}$為莫比烏斯函數: 若$d$等于0 , 則${\mu (d)}$1 若$d {p_1}{p_2}{p_3}...{p_k}$ , ${p_i}$為互異質數&#xff0c;則${\mu (d)}$${( …