Linux下编写c语言头文件,编译时出现“函数未定义”
出现该错误的原因为编译时只变编译了源文件的一部分,故在链接时无法从编译好的目标代码中找到print函数,所以出错。
创新互联建站主营民权网站建设的网络公司,主营网站建设方案,重庆APP软件开发,民权h5小程序开发搭建,民权网站营销推广欢迎民权等地区企业咨询
根据你的源文件结构,个人推荐先单独编译源文件为多个object文件,再统一链接。
方法如下
gcc -c main.c # -c参数的作用是让gcc只编译,不链接
gcc -c test.c
gcc -o main main.o test.o # 将编译好的目标代码链接
当然,以上是在gcc为编译器的前提下执行,如使用clang等其他编译器,方法类似(clang的调用方法与gcc高度兼容)
C语言 函数已经声明 为什么提示未定义
声明和定义不是一回事!声明只是签名,定义才为函数提供真正的代码。
C语言提示某个函数未定义求帮忙
C语言没有bool类型,需要自己来定义,同时IsPrime函数的变量i重复定义了修改如下。
# include stdio.h //这是代码
typedef enum //定义bool类型
{
true = 0,
false = 1,
}bool;
bool IsPrime(int m) //第三行
{
int i;
for (i = 2; i m; ++i)// 多了一个int
{
if(m%i == 0)
break;
}
if(i == m)
return true;
else
return false;
}
C语言关于函数声明的问题,为什么声明后还是报错说函数未定义
你把大括号的位置放错了,sushu函数被定义在了main函数里面,但是按照C语言的规定,函数不允许嵌套定义,所以你的sushu相当于没有定义(不知为何你的编译器没有报错说不允许在函数内定义函数)。解决方法是把你最后面多出来的大括号移到main函数最后面。
名称栏目:c语言函数名未定义,c语言未命名
文章URL:http://lswzjz.com/article/hshoep.html