C 语言问题 Linker Error: Undefined symbol '_sum' in module

来源:百度知道 编辑:UC知道 时间:2024/07/05 18:53:08
EXTERN 的问题
比如我用C写了下面两个程序
F1:
#include <stdio.h>
void main()
{
extern int sum(int x,int y);
int x=5;
int y=6;
int z;
z=sum(x,y);
printf("%d",z);

}

F2
#include <stdio.h>
int sum(int x,int y)
{
int z;
z=x+y;
return z;
}

然后想用第一个调用第二个
为什么每回运行第一个都显示Linker Error: Undefined symbol '_sum' in module
要怎来调用外部函数呢?
谢谢大家先~
我用的是TC
怎么能连到一起呢?

谢谢两位的回答 不过我想问下,如果按照gujianjian5那样 还算外部函数的调用吗?那样不是不用EXTERN也行么 我是想问EXTERN 调用外部函数 的用法

但是我要考试啊。。我并不是因为要做这个程序~所以想明白~

建议你把extern写到main外面
直接命令行输入
tcc f1.c f2.c
就可以了

extern其实写不写都无所谓,只有变量才需要写extern。
比如你写了一个全局变量在f1里面,f2里面要用必须写extern。
函数你不写就表示extern。你不声明就调用,隐含extern int。

如果你是用vc的话,这两个加进同一个工程。 如果你是用其他的编译器,看看怎么能让这两个一起链接

你这样调用也用不着写 extern, 基本上外部函数就用不着写这个

把F2的函数保存为
f2.h(在同一目录下)
然后在F1程序的开头写上
#include <f2.h>
就可以通用了