unresolved external symbol

外语
赵荷老师 2019-07-17 16:58:46

描述:我做一个密码算法的程序遇到了一个问题搞了一下午都没弄出来.我想跳楼.问题如下:我用了三个.cpp文件.我在主函数文件中调用了另一个文件的下面两个函数,我确定我在main函数中调用了.不...

我做一个密码算法的程序遇到了一个问题搞了一下午都没弄出来.
我想跳楼.
问题如下:我用了三个.cpp文件.我在主函数文件中调用了另一个文件的下面两个函数,我确定我在main函数中调用了.不是网上说的那种定义了但没用到.而且编译都没问题.
网上说的各种方法我几乎都看了不行.
main.obj : error LNK2001: unresolved external symbol "int __cdecl K_0(int *,int)" (?K_0@@YAHPAHH@Z)
main.obj : error LNK2001: unresolved external symbol "int __cdecl Input(void)" (?Input@@YAHXZ)
Debug/DES.exe : fatal error LNK1120: 2 unresolved externals
执行 link.exe 时出错.

DES.exe - 1 error(s), 0 warning(s)

unresolved external symbol 这类错误是编译器找不到指定的符号定义。
它是在连接的时候出现的,有两种可能:1、你写的这个函数只有省名,没有定义,
2、这个函数是动态连接库导出的函数,而你没有连接它的lib库文件可以用“#pragma comment(lib, "那个库.lib")”编译命令或设置VC的lib文件路径。

按你所说的应该是自己写的函数,你确信你对这两个函数做了定义(而不是声明,也就是有这两个函数的实现代码)并包含了这个函数的头文件.
方便的话把与这个函数相关的代码贴出来吧

#unresolved external symbol#

返回顶部

影响力:5822

关于C语言编译问题,unresolved external symbol"struct student * __cdecl Leading_in(

描述: #include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<ctype.h>/*字符操作函数*/#defineN5charobject[5][20]={"语文","数学","英语","C语言","计概"};ty... #include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<ctype.h> /* 字符操作函数 */#define N 5char object[5][20]={"语文","数学","英语","C语言","计概"};typedef struct student /* 定义数据结构 */{ char number[12]; char name[15]; float score[N]; float sum; float average; int order; struct student *next;}Stu;void inputs(char *prompt,char *s,int count);Stu *initial(); /* 初始化函数 */Stu *create(); /* 创建链表 */Stu *deletes(Stu *h); /* 删除记录 */void print(Stu *h); /* 显示所有记录 */void search(Stu *h); /* 查找信息 */void save(Stu *h); /* 保存记录 */Stu *load(); /* 读取数据 */void calculation(Stu *h); /* 计算总分和平均分 */Stu *insert(Stu *h); /* 插入记录 */void append(); /* 追加记录 */void copy(); /* 复制文件 */Stu *sort(Stu *h); /* 排列顺序 */Stu *index(Stu *h); /* 索引 */void total(Stu *h); /* 分类合计 */int menu_select(); /* 菜单函数 *//*****主函数开始*****/void main(){ Stu *head; /* 链表定义头指针 */ head=initial(); /* 初始化链表 */ system("cls"); /* 清屏 */ while(1) /* 无限循环 */ { switch(menu_select()) { case 0: head=initial(); /* 执行初始化 */ break; case 1: head=create(); /* 创建链表 */ break; case 2: head=deletes(head); /* 删除记录 */ break; case 3: print(head); /* 显示全部记录 */ case 4: search(head); /* 查找记录 */ case 5: save(head); /* 保存记录 */ case 6: head=load(); /* 读取文件 */ break; case 7: calculation(head); /* 计算总分和平均分 */ break; case 8: head=insert(head); /* 插入记录 */ break; case 9: copy(); /* 复制记录 */ break; case 10: head=sort(head); /* 排列顺序 */ break; case 11: append(); /* 追加记录 */ break; case 12: head=index(head); /* 索引 */ break; case 13: total(head); /* 分类合计 */ break; case 14: exit(0); /* 如果菜单返回值为14程序结束 */ } }}部分的代码,完整的代码请加我的164120386

展开

这个解答帮助过5055人

error LNK2001: unresolved external symbol _printfm 系统提示有一个链接错误,因为printfm这个函数不认识 问题出在void printstud (struct student *stud)函数的第三行代码 把这个printfm ("以下是所有学生信息\n");改成如下: printf ("以下是所有学生信息\n"); 编译器里面双击错误信息,会跳转到出错位置的,这样会比较好查找问题

编辑时间 2019-10-02 08:36:25
影响力:4900

VC 中这个错误: unresolved external symbol

这个解答帮助过5162人
编辑时间 2019-03-23
影响力:7591

C 语言 error LNK2001: unresolved external symbol _fprint

描述: 编译显示没有问题,运行显示出错代码如下#include"stdio.h"#include"math.h"#include"stdlib.h"voidmain(){inti,j,NR,n;//*可采储量为205086,n为开采时长*//floatq[24],Np[24],W[24];... 编译显示没有问题,运行显示出错
代码如下
#include"stdio.h"
#include"math.h"
#include"stdlib.h"
void main()
{
int i,j,NR,n;//*可采储量为205086,n为开采时长*//
float q[24],Np[24],W[24];
FILE *fp1 ,*fp2;
printf("请输入可采储量NR的值\n");
scanf("%d",&NR);
printf("请输入开采时长n的值\n");
scanf("%d",&n);
printf("输出数据组数\n");
scanf("%d",&n);

if((fp1=fopen("d:\\113.txt","rt"))==NULL)
{
printf("cannot open file\n");
return 0;
}

if((fp2=fopen("d:\\生产数据表格.xls","w"))==NULL)
{
printf("cannot open file\n");
return 0;
}

for(j=0;j<n;j++)
{

fscanf(fp1,"%f",&q[j]);
fscanf(fp1,"\n");
printf("q[%d]=%f\n",j,q[j]);
}
printf("q[%d}=%f",j,q[j]);

printf("周超 \n");

Np[0]=q[0];
printf("Np[0]=%f",Np[0]);
W[0]=(NR-Np[0])/q[0];
printf(" W[0]=%f\n",W[0]);
for(i=1;i<=n;i++)
{
Np[i]=Np[i-1]+q[i];
printf("Np[%d]=%4.2f",i,Np[i]);
W[i]=(NR-Np[i])/q[i];
printf(" W[%d]=%4.2f\n",i,W[i]);
}
fprint(fp2,"时长\t年产量\t累计产量\t储采比\n");
for(j=0;j<n;j++)
fprintf(fp2,"%d\t%f\t%f\t%f\n",j,q[j],Np[j],W[j]);

fclose(fp1);
fclose(fp2);

}
展开
这个解答帮助过9320人

编译错误,fprint(fp2,"时长\t年产量\t累计产量\t储采比\n");
改为:fprintf(fp2,"时长\t年产量\t累计产量\t储采比\n");

编辑时间 2019-07-06
影响力:1826

unresolved external symbol "void __cdecl score_buji_PE(void)" (?score_buji_P

描述: 这个怎么改正确... 这个怎么改正确
这个解答帮助过2182人

应该是说你的连接程序找不到void RenderScreen(void)函数的实现。你实现这个函数了吗?连接的时候,有没有把对应的实现函数的obj文件一起链接呢?

编辑时间 2019-06-03
影响力:7163

error LNK2001: unresolved external symbol _main出现了这样错误,我的主函数也有啊!

描述: #include<stdio.h>mian(){floatfac(intarray[10]);inti,fa[10];floatsum;printf("inputyournumber");for(i=0;i<10;i++){scanf("%d\n",&fa[i]);}sum=fac(fa);printf("%f\n",sum);}floa... #include<stdio.h>
mian(){
float fac(int array[10] );
int i,fa[10];
float sum;
printf("input your number");
for(i=0;i<10;i++){
scanf("%d\n",&fa[i]);
}
sum=fac(fa);
printf("%f\n",sum);
}
float fac(int array[10] ){
int i ;
static float b= 0;
for(i=0;i<10;i++){
if(i=0){
b = (float)array[10];
}
b = b*array[10];
}
return b;
展开
这个解答帮助过5008人
编辑时间 2019-08-07
影响力:3568

VC 中这个错误: unresolved external symbol

这个解答帮助过965人

case 1里first拼写错误

编辑时间 2019-03-23
影响力:8312

开始显示没有错误,运行不了,unresolved external symbol_main

这个解答帮助过2655人

main写成了mian。

追问

显示出梅花♧了是怎么回事

编辑时间 2019-05-10
影响力:2481

WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL:

这个解答帮助过2109人

连接时产生的警告:无法解析的外部符号。
百度嫌我字数不够

编辑时间 2018-11-17
影响力:6126

main.obj : error LNK2001: unresolved external symbol _sleep Debug/201802210.

描述: #include<stdio.h>#include<stdlib.h>#include<conio.h>#include<cwindow.h>inthigh,width;intball_x,ball_y;intball_vx,ball_vy;voidgotoxy(intx,inty){HANDLEhandle=GetStdHandle(S... #include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<cwindow.h>

int high,width;
int ball_x,ball_y;
int ball_vx,ball_vy;

void gotoxy(int x,int y)
{
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(handle,pos);
}

void startup()
{
high=15;
width=20;
ball_x=0;
ball_y=width/2;
ball_vx=1;
ball_vy=1;
}
void show()
{
int i,j;
gotoxy(0,0);
for(i=0;i<high;i++)
{
for(j=0;j<width;j++)
{
if((i==ball_x)&&(j==ball_y))
printf("0");
else
printf(" ");
}
printf("\n");
}
}
void updateWithoutInput()
{
ball_x=ball_x+ball_vx;
ball_y=ball_y+ball_vy;

if((ball_x==0)||(ball_x==high-1))
ball_vx=-ball_vx;
if((ball_y==0)||(ball_y==width-1))
ball_vy=-ball_vy;

sleep(50);
}

void updateWithInput()
{
}

int main()
{
startup();
while(1);
{
show();
updateWithoutInput();
updateWithInput();
}
return 0;
}
展开
这个解答帮助过9222人

ShowWindow(hwnd,nShowCmd);
UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0))
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

编辑时间
影响力:815

循环队列出现error LNK2001: unresolved external symbol _Judgmenet错误怎么办

描述: #include<stdio.h>#include<stdlib.h>#defineOK1#defineERROR0#defineOVERFLOW-2typedefintStatus;typedefintElemType;#defineMAXSIZE5//队列的最大长度typedefstruct{ElemType*elem;... #include<stdio.h>
#include<stdlib.h>

#define OK 1
#define ERROR 0
#define OVERFLOW -2

typedef int Status;
typedef int ElemType;

#define MAXSIZE 5 //队列的最大长度

typedef struct{
ElemType *elem; //存储空间基址
int front; //队头
int rear; //队尾
}SqQueue;

Status InitQueue(SqQueue Q);
int QueueLength(SqQueue Q);
Status EnQueue(SqQueue Q,ElemType e);
Status DeQueue(SqQueue Q,ElemType e);
int Judgment(SqQueue Q);
void visit(SqQueue Q);

int main(){
SqQueue Q;
ElemType n,m,c[9];
int i=0;
InitQueue(Q);//构建循环空队
printf("请输入队列的初始元素,最后以-1结尾:\n");
do{
scanf("%d",&n);
++i;
if(n==-1)
break;
EnQueue(Q,n);
}while(i<MAXSIZE-1);
printf("此时队列是否为空?\n");
Judgment(Q);
printf("当前长度为:%d\n",QueueLength(Q));
printf("请输入入队元素:");
scanf("%d",&n);
EnQueue(Q,n);
printf("此时队列是否为空?\n");
Judgment(Q);
DeQueue(Q,m);
printf("出队的元素为:%d",m);
printf("此时队列是否为空?\n");
Judgment(Q);
return OK;
}

Status InitQueue(SqQueue Q){
Q.elem=(ElemType*)malloc(MAXSIZE*sizeof(ElemType));
if(!Q.elem) exit(OVERFLOW);
Q.front=Q.rear=0;
return OK;
}

int QueueLength(SqQueue Q){
return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;
}

Status EnQueue(SqQueue Q,ElemType e){
if(Judgment(Q)==1)
return ERROR;
Q.elem[Q.rear]=e;
Q.rear=(Q.rear+1)%MAXSIZE;
return OK;
}

Status DeQueue(SqQueue Q,ElemType e){
if(Judgment==0)
return ERROR;
e=Q.elem[Q.front];
Q.elem[Q.front]=0;
Q.front=(Q.front+1)%MAXSIZE;
return OK;
}

int Judgment(SqQueue Q){
if(Q.rear+1%MAXSIZE==0)
return 1;
else
if(Q.rear==Q.front)
return 0;
else
return -1;
return OK;
}

void visit(SqQueue Q){
ElemType i;
if(Judgment(Q)){
printf("此时队满!\n");
printf("队列元素为:");
while(i!=Q.rear){
printf("%3d",Q.elem[i]);
i=(i+1)%MAXSIZE;
}
}
else
if(!Judgmenet(Q))
printf("此时队空!\n");
else{
printf("此时队内还有剩余!\n");
printf("队列元素为:");
while(i!=Q.rear){
printf("%3d",Q.elem[i]);
i=(i+1)%MAXSIZE;
}
}
}
展开
这个解答帮助过197人

#include<conio.h>
#include <stdio.h>
int main()
{
printf ("holle.\n");

getch();
}

不是没运行,是运行后关闭了

追问

那要怎么改呢

编辑时间 2019-04-08