c语言error LNK2001: unresolved external symbol

我写了一个栈的基本操作的ds3_seqStack2.cpp文件,函数声明和数据结构定义用了头文件ds3_seqStack2.h,然后写一个test.cpp文件includ... 我写了一个栈的基本操作的ds3_seqStack2.cpp文件,函数声明和数据结构定义用了头文件ds3_seqStack2.h,然后写一个test.cpp文件include这个.h文件以调用栈基本函数,但是连接报错,下帖代码,求指教
#include"stdio.h"
#include"stdlib.h"
#include "ds3_seqStack2.h"
int initStack(SqStack &s,int n) {
s.data = (char *)malloc(n);
if(s.data == NULL) {
printf("space alloction fail\n");
exit(0);
}
s.stackSize = n;
s.top = -1;
return 1;
}
int push(SqStack &s,char x) {
if(s.top == s.stackSize-1) {
printf("the stack is full\n");
return 0;
}
s.data[++s.top] = x;
return 1;
}
int pop(SqStack &s,char &x) {
if(stackEmpty(s)) {
printf("the stack is empty\n");
return 0;
}
x = s.data[s.top];
s.top--;
return 1;
}
int stackEmpty(SqStack s) {
if(s.top == -1) {
return 1;
}
return 0;
}
int stackLength(SqStack s) {
return s.top+1;
}
int clearStack(SqStack &s) {
s.top = 1;
return 1;
}
void stackTraverse(SqStack s) {
for(int i=0;i<s.top+1;i++) {
printf("%-3d",s.data[i]);
}
printf("\n");
}
#ifndef SEQSTACK2_H
#define SEQSTACK2_H
typedef struct stack {
char* data;
int top;
int stackSize;
}SqStack;
int initStack(SqStack &s,int n);
int push(SqStack &s,char x);
int pop(SqStack &s,char &x);
int stackEmpty(SqStack s);
int clearStack(SqStack &s);
int stackLength(SqStack s);
void stackTraverse(SqStack s);
#endif
#include"stdio.h"
#include"ds3_seqStack2.h"
int parenthesesMatch(char* s);
void main() {
char s[20];
printf("Please input a expressions\n");
scanf("%s",s);
if(parenthesesMatch(s)) {
printf("parentheses Match\n");
}else {
printf("parentheses doesn't Match\n");
}
}
int parenthesesMatch(char* str) {
SqStack s;
char x;
initStack(s,10);
while(*str) {
if(*str == '('|| (*str) == '[') {
push(s,*str);
str++;
}
else if(*str == ')') {
if(s.data[s.top] == '(') {
pop(s,x);
str++;
}
else {
return 0;
}
}
else if(*str == ']') {
if(s.data[s.top] == '[') {
pop(s,x);
str++;
}
else {
return 0;
}
}
else {
str++;
}
}
if(stackEmpty(s)) {
return 1;
}else {
return 0;
}
}
error LNK2001: unresolved external symbol "int __cdecl stackEmpty(struct stack)" (?stackEmpty@@YAHUstack@@@Z)
ds6_stackApp2_parenthesesMatch.obj : error LNK2001: unresolved external symbol "int __cdecl pop(struct stack &,char &)" (?pop@@YAHAAUstack@@AAD@Z)
ds6_stackApp2_parenthesesMatch.obj :
展开
 我来答
大神282
2012-08-01
知道答主
回答量:15
采纳率:100%
帮助的人:4.7万
展开全部
是的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
折咏志0hfd5a
2012-08-01 · TA获得超过279个赞
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:245万
展开全部
ds3_seqStack2.cpp test.cpp两个需要一起编译。
你的编译命令是什么?
追问
哇塞,真的要一起编译,我用的是vc,可是为什么要这样勒,我记得之前做过好像没编译那个栈操作的cpp也可以诶,那以后我调用其他文件的函数都需要全部编译一遍吗
追答
是的。你平常用到的printf等函数,属于系统函数,属于标准c库函数,默认编译时,会查找libc库文件。
如果是自己写的函数,如果要调用,那么是需要编译才可以调用的。
另外,有一些函数,是属于非标准的,你在编译时,需要链接对应的库,才能调用。
比如:
pow幂函数,除了#include 外,还需要编译时,添加 -lm选项(linux系统),表示链接math库
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式