c语言头文件为什么引用未定义??
学习C语言遇到这个情况解决不了aa.h文件voidtest();aa.c文件#include"aa.h"#include"stdio.h"voidtest(){print...
学习C语言 遇到这个情况解决不了
aa.h 文件
void test();
aa.c 文件
#include "aa.h"
#include "stdio.h"
void test()
{
printf("test\n");
}
main.c文件
#include "aa.h"
#include "stdio.h"
void main(void)
{
test();
}
gcc main.c为什么test()未定义?? 展开
aa.h 文件
void test();
aa.c 文件
#include "aa.h"
#include "stdio.h"
void test()
{
printf("test\n");
}
main.c文件
#include "aa.h"
#include "stdio.h"
void main(void)
{
test();
}
gcc main.c为什么test()未定义?? 展开
4个回答
2016-07-07
展开全部
因为你没有把aa.c编译进来,gcc main.c aa.c这样写才对。
更多追问追答
追问
我用的是头文件啊,在main.c中include "aa.h"了啊
追答
但是你编译的话,必须把全部的c文件都要编译的啊,你只编译一个c算怎么个逻辑呢?
编译实际上是2个过程,编译和链接。
编译过程只检查所有的符号(变量,函数)有没有声明,即只需要h文件生命就够了。
但是链接时候,需要找到全部的函数的实现体,你不把aa.c一起编译,电脑怎么知道你还有一个aa.c文件呢,它又不是神仙会算。
简单说就是,gcc编译必须把全部的c文件一起编译!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的,这样是调用的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h" ->
#include <stdio.h>
#include <stdio.h>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哈哈哈,同求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询