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()未定义??
展开
 我来答
匿名用户
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文件一起编译!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佼珹WV
2017-07-22 · TA获得超过223个赞
知道小有建树答主
回答量:362
采纳率:72%
帮助的人:46.4万
展开全部
可以的,这样是调用的意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
编程真的没意思
2017-09-18
知道答主
回答量:19
采纳率:0%
帮助的人:4.7万
展开全部
#include "stdio.h" ->

#include <stdio.h>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2017-07-06 · TA获得超过222个赞
知道小有建树答主
回答量:100
采纳率:80%
帮助的人:19.5万
展开全部
哈哈哈,同求
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式