免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3698 | 回复: 13
打印 上一主题 下一主题

[C] 天气热,头晕了,c语言的头文件问题包含求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-04 18:01 |只看该作者 |倒序浏览
三个文件,分别是:

a.h

  1. #ifndef _A_H
  2. #define _A_H

  3. int a;
  4. void p();

  5. #endif
复制代码
a.c

  1. #include "a.h"
  2. #include <stdio.h>

  3. void p()
  4. {
  5.         a=6;
  6.         printf("a=%d\n",a);
  7. }
复制代码
main.c

  1. #include "a.h"

  2. int main()
  3. {
  4.         p();
  5.         return 0;
  6. }
复制代码
很简单的程序,a.h中申明了一个全局变量a,和一个函数p(),然后在a.c中具体实现了这个函数,然后在main.c中调用p(),可是gcc编译出现下面的错误:
  1. /tmp/ccorq0yv.o: In function `main':
  2. main.c:(.text+0x7): undefined reference to `p'
  3. collect2: ld returned 1 exit status
复制代码
怎么回事??

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2010-05-04 18:10 |只看该作者
编译命令?

论坛徽章:
0
3 [报告]
发表于 2010-05-04 18:17 |只看该作者
gcc main.c -o main

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2010-05-04 18:18 |只看该作者
a.c你都没有链接进来。
gcc -omain main.c a.c

论坛徽章:
0
5 [报告]
发表于 2010-05-04 18:19 |只看该作者
晕,我用gcc main.c a.h a.c -o main就可以了

可是我以前用gcc main.c -o main就可以阿,晕死了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2010-05-04 18:42 |只看该作者
可是我以前用gcc main.c -o main就可以阿,晕死了
hsum 发表于 2010-05-04 18:19

不信。

论坛徽章:
0
7 [报告]
发表于 2010-05-04 19:21 |只看该作者
本帖最后由 supersuper8 于 2010-05-04 19:22 编辑
三个文件,分别是:

a.ha.cmain.c很简单的程序,a.h中申明了一个全局变量a,和一个函数p(),然后在a.c中具体 ...
hsum 发表于 2010-05-04 18:01



   

a.h

  1. #ifndef _A_H
  2. #define  _A_H

  3. #include <stdio.h>

  4. int a;
  5. void p();

  6. #endif
复制代码
main.c

  1. #include "a.h"

  2. extern int a;
  3. extern void p();

  4. int main(void) {
  5.     p();
  6. }
复制代码
gcc -o main main.c a.c


跟天氣沒有關係。 跟你的基本知識掌握和iq有關係。
謝謝。

BTW : 像你這個print來講 定一個全局的int 是沒有意義的。

论坛徽章:
0
8 [报告]
发表于 2010-05-04 19:22 |只看该作者
晕,我用gcc main.c a.h a.c -o main就可以了

可是我以前用gcc main.c -o main就可以阿,晕死了
hsum 发表于 2010-05-04 18:19



    那估计是你以前只有main.c和a.h xx.h
    了解下编译和链接

论坛徽章:
0
9 [报告]
发表于 2010-05-04 19:24 |只看该作者
還有繼續發

a.c

  1. void p() {
  2.     a = 8;
  3.     printf("a = %d \n", a);
  4. }
复制代码
看下我的a.h和a.c的意義。。。

你理解不了那我就説不了什麽了。

论坛徽章:
0
10 [报告]
发表于 2010-05-04 19:25 |只看该作者
那估计是你以前只有main.c和a.h xx.h
    了解下编译和链接
ubuntuer 发表于 2010-05-04 19:22



   

哥, 你的專家積分怎麽來的?

extern的問題 關gcc什麽事情呢????????
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP