WORD error LNK2019: 无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中被引用
作者&投稿:爨枯 (若有异议请与网页底部的电邮联系)
一般都是由于缺少相应的库文件
右击项目,选择“属性”--“链接器”--“输入”--“附加依赖项”
根据错误中的提示在下图右边的红色框内添加相应的lib文件
再次编译运行即可避免此类错误产生
这是我们常见的错误,我们要学会解决
只有在不断地探索解决的时候才会有收获
这样对程序员才是一种欣喜,一种进步!
你建立的是console工程,console工程的入口是main,而不是WinMain,在链接时,就会找不到main
工程--> Setting--> Link
将/subsystem:windows 改为 /subsystem:console 即可
//#include "stdafx.h"
#include <iostream>
using namespace std;
int Shun_zi(int a[],int nLen); //判定是否有顺子
int sort(int m[],int nLen); //扑克牌数排序
int print(int b[],int nLen); //输出全部扑克牌数
int canf(int n[],int nLen); //输入扑克牌数
int judge(int x[],int nLen); //判定输入的扑克牌数是否合理
int Csame(int a[],int nLen);
int main(){
int y[10];
cout<<"请输入10个数"<<endl;
canf(y, 10);
cout<<"输入的数字为"<<endl;
print(y, 10);
judge(y, 10); //判断是否为扑克牌数
sort(y, 10); //从小到大排序
cout<<"排序后的数为**************************"<<endl;
print(y, 10);
int num;
num=Shun_zi(y,10);
if(num<=4)
{
cout<<"没有顺子"<<endl;
}
return 0;
}
int Shun_zi(int a[], int nLen)
{
if(a==NULL)
{
return 0;
}
if (nLen==0)
{
return 0;
}
nLen=Csame(a, nLen); //合并相同数
int number = 0; //连续的牌的数的个数
int ch=1; //顺子的个数
for (int i=0;i<nLen-1;i++)
{
if (a[i]+1==a[i+1])
{
number++;
}
else
{
number=0;
}
if (number>=4)
{
cout<<"顺子"<<ch++<<endl;
int k=i;
for(int j=0;j<number+1;j++)
{
cout<<a[k]<<" ";
k++;
}
cout<<endl;
number=0;
}
}
return number;
}
int Csame(int a[],int nLen) //判定是否有相同的数,有就合并相同数
{
int i=0,j=0;
for(i=0;i<nLen-1;i++)
{
if(a[i]==a[i+1]) //若遇到相同的数,则此后的数全部向前移动覆盖
{
for(j=i;j<nLen-1;j++)
{
a[j]=a[j+1];
}
nLen--; //长度减一
i--; // i减一回到原来那个数继续判定
}
}
return nLen;
}
int sort(int m[],int nLen)
{
if(m == NULL)
{
return 0;
}
if (nLen==0)
{
return 0;
}
int i=0;
int j=0;
int temp=0;
for (i=0;i<nLen-1;i++)
{
for(j=i+1;j<nLen;j++)
{
if (m[i]>m[j])
{
temp=m[i];
m[i]=m[j];
m[j]=temp;
}
}
}
return 0;
}
int print(int b[],int nLen)
{
if(b == NULL)
{
return 0;
}
if (nLen==0)
{
return 0;
}
int i=0;
for(i=0;i<nLen;i++)
{
cout<<b[i];
}
cout<<endl;
return 0;
}
int canf(int n[],int nLen)
{
for(int i=0;i<nLen;i++)
{
cin>>n[i];
}
return 0;
}
int judge(int x[],int nLen)
{
if(x == NULL)
{
return 0;
}
if (nLen==0)
{
return 0;
}
int max=0;
int min=0;
int k=0;
for (k=0;k<nLen;k++)
{
if (max<x[k])
{
max=x[k];
}
if (min>x[k])
{
min=x[k];
}
if (max-min>13)
{
cout<<"不是扑克牌数"<<endl;
}
else
{
cout<<"是扑克牌数"<<endl;
}
}
return 0;
}
戊武补脾: 这个错误解决了. 这是OBJECTARX200\DOCSAMPS\HILIGHTS,我昨天用visual c++6.0打开hilight.cpp文件,然后编译出错. 原因:没有连接hilight.def文件,我今天直接打开dsp文件,编译运行没错,但我不明白为什么第一次编译一定要有def文件
四会市18976006999: error LNK2001错误如何解决??
戊武补脾: 出现这种情况有很多种原因.主要有二种原因:1.编码错误,不过好像你的不像;2.由于编译和链接的设置;具体要看你的代码是怎么样的.#include "AcExtensionModule.h",可能你没有把CAcModuleResourceOverride的定义文件加入到当前工程吧,仅供参考!
四会市18976006999: 循环队列出现error LNK2001: unresolved external symbol - Judgmenet错误怎么办 - ?
戊武补脾: #include<conio.h>#include <stdio.h> int main() { printf ("holle.\n"); getch(); } 不是没运行,是运行后关闭了
四会市18976006999: 编写的程序中这个error LNK2001错误是什么原因 - ?
戊武补脾: 出现这种问题,是指你这个extern的函数没有定义和实现部分,你包含实现部分的头文件和cpp进工程里面就行了,如果是在lib文件里面实现的,包含lib和头文件即可
四会市18976006999: WORD装不上,总是提示错误 1321?
戊武补脾: 若要解决此问题,请在没有启用 加密内容以便保护数据的安全 设置的文件夹中安装 2007 Office 套件或程序.若要确认 加密内容以便保护数据 设置未启用,请按照下列步骤操作: 用鼠标右键单击您要在其中安装 2007 Office 套件或程序的文件夹. 单击 属性. 在 常规 选项卡上单击 高级. 高级属性 对话框中确保清除了 压缩或加密属性 下的 加密内容以便保护数据 复选框 选中文件夹——鼠标右键——属性,出来如上界面 打开“我的电脑”——〉“工具”——〉“文件加选项”——〉“查看”——〉把“使用简单文件共享”前面的钩划掉.
四会市18976006999: 错误 1 error LNK2001: 无法解析的外部符号 - mainCRTStartup 错误 2 error LNK1120: 1 个无法解析的外部命 - ?
戊武补脾: VC编译程序时过程是这样的,在编译控制台程序时编译器并不是从main函数开始执行,而是去找mainCRTStartup函数,mainCRTStartup函数做些工作,如把一个命令行的字符串拆分成几个字符串等工作,然后去mainCRTStartup再去调用main函数.你新建一个cpp文件就可以了,但是如果你建了cpp文件,但是没有main函数,那么就会提示无法解析的符号_main,已在mainCRTStartup中引用,其实就是main函数你没有定义,但是mainCRTStartup调用了它.而你的这个错误是没有找到mainCRTStartup函数,你只要新建一个cpp文件就可以了,系统会替你写mainCRTStartup函数的.
四会市18976006999: 求问:error LNK2001: unresolved external symbol 是什么意思啊?怎么改? - ?
戊武补脾: LIBCD.LIB 里没有 _WinMain 这个函数,或者参数不正确 例如 LIBCD.LIB 定义为 int _WinMain(HINSTANCE, HINSTANCE, LPSTR, INT); 导入时为 int _WinMain(HINSTANCE, HINSTANCE, LPCSTR, INT); 这样就会出现 LIBCD.lib(wincrt0....
四会市18976006999: error LNK2001: unresolved external symbol - FINDPOINT@24 Fortran语言这是什么错误?子程序都这样错误? - ?
戊武补脾: 可能性1:FINDPOINT 这个函数没找到.可能性2:有这个函数,但你没有加入工程.如果这个函数是在某函数库里,你没有正确的使用它.可能性3:FindPoint 是个数组,但你没有申明为数组,编译器误以为是函数
四会市18976006999: error LNK2001: - ?
戊武补脾: 你前面写的函数声明是:BOOL Initwindows(HINSTANCE hInstance,int nCmdShow); 而后面的实现却是:BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);注意,大小写有所不同,所以编译器会认为是两个函数!
四会市18976006999: error LNK2001、fatal error LNK1120 怎么解决??? - ?
戊武补脾: Project] --> [Settings] --> 选择"Link"属性页 在Project Options中将/subsystem:windows改成/subsystem:console