❶ c语言编译总是提示 1 error
1、这个问题很多情况下是由于路径设置的问题引起的,“CL.exe”是VC使用真正的编译器(编译程序),其路径在“VC根目录\VC98\Bin”下面,可以到相应的路径下找到这个应用程序。
2、因此问题可以按照以下方法解决:点击VC“TOOLS(工具)”—>“Option(选择)”—>“Directories(目录)”重新设置“Excutable
Fils、Include
Files、Library
Files、Source
Files”的路径。很多情况可能就一个盘符的不同(例如VC装在C,但是这些路径全部在D),改过来就OK了。
❷ 为什么我每次编译C语言时,都会发生这样的错误
这个可能是你编程用的软件没有装好,一般是路径安装问题。你用的是不是vc++6.0?是的话,下面有些解决方法你可以试试。
关于vc++6.0软件编程时出现“Error spawning cl.exe”“ cannot open file "Debug/sad.exe"(其中sad是文件名)”和“计算机丢失mspdb60.ll”等类似问题时;
主要可能存在以下问题1.以前安装过vc++6.0,但是卸载不彻底,或者重装系统后,原来安装软件不能正常使用。解决方法:卸载原软件。
2,vc++6.0与windowxpsp3兼容,在window7下计算机会提示软件不兼容,这时不用修改成兼容模式,否者就不能使用了,直接安装就可以了,不用考虑兼容性问题,
还用如果是从网上下载的软件,安装时的注册码一般输入111-111111就行。另外,下载的破解版软件可能被杀毒软件截获,安装前最好先关闭杀毒软件,然后按提示进行安装。
3.在排除前两个问题的前提下,出现上述问题时,很可能的问题是软件中的设置出现错误。可以按下述方法进行调试即可:
打开vc界面 点击VC“TOOLS(工具)”—>“Option(选择)” —>“Directories(目录)”重新设置“Excutable Fils、Include Files、 Library Files、Source Files”
的路径。很多情况可能就一个盘符的不同 (例如你的VC装在C,但是这些路径全部在D),改过来就OK了如果你装在其他盘里,则仿照其路径变通就行(我就是装在D盘)。
关键是microsoft visual studio\ 后面的东西要相同。 如果你是按照初始路径安装vc6.0的,路径应为:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT
include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
更改完成后,关闭软件,重新打开,再进行编程。
4,如果按第三步操作后,编程时仍然提示错误,就在建立工程时,将存储路径改为你自己建立的文件夹(随便在那个盘建一个都行,只要自己能找到就行),
以避免编译时文件不能打开的问题。
5,经过以上四步调试,一般情况下就可以使用了,如果还不能使用的话,可以尝试一下三种方法。
一,卸掉现有版本,更换版本重新安装,然后再按以上步骤进行调试。
二,直接将别人计算机中安装好的软件从安装盘中复制的自己的电脑上,(这样做有时也要按第三步和第四步进行调整,),找出文件中的图标即可运行。
三,最后一个办法,重装系统,系统重装后,一定要先装vc++再装补丁,不然的话还可能错误。
❸ 关于C语言在编译时常出现的错误有哪些
1、fatal error C1010: unexpected end of file while looking for precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。
3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。
4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文标点符号)
5、error C2057: expected constant expression
希望是常量表达式。(一般出现在switch语句的case分支中)
6、error C2065: 'IDD_MYDIALOG' : undeclared identifier
“IDD_MYDIALOG”:未声明过的标识符。
7、error C2082: redefinition of formal parameter 'bReset'
函数参数“bReset”在函数体中重定义。
8、error C2143: syntax error: missing ':' before '{'
句法错误:“{”前缺少“;”。
9、error C2146: syntax error : missing ';' before identifier 'dc'
句法错误:在“dc”前丢了“;”。
10、error C2196: case value '69' already used
值69已经用过。(一般出现在switch语句的case分支中)
11、error C2509: 'OnTimer' : member function not declared in 'CHelloView'
成员函数“OnTimer”没有在“CHelloView”中声明。
12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'
重载的函数“void reset(int)”在类“B”中找不到。
13、error C2555: 'B::f1': overriding virtual function differs from 'A::f1' only by return type or calling convention
类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。
14、error C2660: 'SetTimer' : function does not take 2 parameters
“SetTimer”函数不传递2个参数。
15、warning C4035: 'f……': no return value
“f……”的return语句没有返回值。
16、warning C4553: '= =' : operator has no effect; did you intend '='?
没有效果的运算符“= =”;是否改为“=”?
17、warning C4700: local variable 'bReset' used without having been initialized
局部变量“bReset”没有初始化就使用。
18、error C4716: 'CMyApp::InitInstance' : must return a value
“CMyApp::InitInstance”函数必须返回一个值。
19、LINK : fatal error LNK1168: cannot open Debug/P1.exe for writing
连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭)
20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C……::~C……(void)"
连接时发现没有实现的外部符号(变量、函数等)。
function call missing argument list 调用函数的时候没有给参数。
member function definition looks like a ctor, but name does not match enclosing class 成员函数声明了但没有使用
unexpected end of file while looking for precompiled header directive 在寻找预编译头文件时文件意外结束,编译不正常终止可能造成这种情况
❹ C语言编译错误
出现该问题一般有两种情况: 1. 是你缺少数据文件IN.DAT, 2. 数据文件里的内容不符合要求,在读取时出错。解决方法: 1.在读取文件的地方,fp=fopen("IN.DAT","r");对fp进行判断,如果打开失败,提示打开失败,程序再往下走也没意义了,调用exit(0)退出程序。 2.检查你的数据文件,看是否格式是否符合要求。下面附上修正后代码:#include<stdio.h>
#define MAX 200
int a[MAX],b[MAX],cnt=0;
void writeDat();void jsVal( )
{
int i,j,thou,hun,ten,data;
for(i=0;i<200;i++)
{
thou=a[i]/1000;
hun=a[i]%1000/100;
ten=a[i]%100/10;
data=a[i]%10;
if(thou+ten==hun+data)
if(a[i]%2==0)
{
b[cnt]=a[i];
cnt++;
}
}
for(i=0;i<cnt-1;i++)
for(j=0;j<cnt;j++)
{
if(b[i]>b[j])
{
data=b[i];b[i]=b[j];b[j]=data;
}
}
}void readDat( )
{
int i;
FILE *fp;
fp=fopen("IN.DAT","r");
if (!fp)
{
printf("文件打开失败\n");
exit(0);
}
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}void main()
{
int i;
readDat();
jsVal();
printf("满足条件的数=%d\n",cnt);
for(i=0;i<cnt;i++)
printf("%d",b[i]);
printf("\n");
writeDat();
}void writeDat()
{
FILE *fp;
int i;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp, "%d\n",b[i]);
fclose(fp);
}