当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [提问]一些多个源文件编译的问题……
帖子发表于 : 2007-08-02 12:40 
头像

注册: 2005-06-28 18:08
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
假如我在main.c里面头部写了
#include<stdio.h>
#define A 100

main()
{……}

然后把一个子函数放在sub.c,其中调用了标准库的printf()和前面main.c定义的A,那么这个sub.c的头部还要不要加入这两句?
#include<stdio.h>
#define A 100

我是直接gcc *.c编译的,不写这两句通不过编译,提示说未定义,但是我觉得这样会不会重复定义了,影响最后的程序?

btw,一般处理多个源文件时,gcc该怎么用?
gcc *.c?
gcc -c *.c然后gcc *.o?

我的教材对于多个源文件编译的细节讲的太不详细,我也找不到更多有关的东西,只好上来问了= =

昨天编译一个4个源文件的程序,运行结果怎么都不对……怒了把所有文件合并到一个文件里面编译一次,居然就对了……搞不懂……


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-08-02 12:53 

注册: 2006-11-23 18:04
帖子: 18
送出感谢: 0 次
接收感谢: 0 次
新建一个def.h文件这样写
#ifndef _def_h
#define _def_h

#define A 10

#endif
然后让所有的.c都包含def.h文件。
编译用这个: gcc -o test main.c a.c b.c sub.c


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-08-02 12:55 
头像

注册: 2005-12-07 0:17
帖子: 476
地址: 昆明
送出感谢: 0 次
接收感谢: 0 次
c编程基础不够啊,感觉还没有入门。linux试用的是C语言,文件之间该怎么调用,看看书不就行了吗.

至于gcc,告诉你一个好方法:
代码:
  man gcc


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-08-02 13:13 
头像

注册: 2005-06-28 18:08
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
我真的只是初学者呀XD

突然发现后面两节是作用域规则和头文件,原来作者根本没想要这个程序在这时候能跑起来……


最后由 lyre 编辑于 2007-08-02 13:20,总共编辑了 1 次

页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-08-02 13:15 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
lyre 写道:
我真的只是初学者呀XD

初学者不学习就永远是初学者


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-08-02 13:28 
头像

注册: 2006-10-21 12:03
帖子: 1746
地址: Shanghai
送出感谢: 0 次
接收感谢: 0 次
BigSnake.NET 写道:
lyre 写道:
我真的只是初学者呀XD

初学者不学习就永远是初学者


但有的时候即使学习了,也还是初学者。。。 :P


_________________
.

私人空间
附有 Magic Linux 2.1 最新开发日志~
引用:


미안하다, 사랑한다




欢迎来 #xfce-cn 中文频道~~


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-08-02 13:48 
头像

注册: 2007-08-01 13:30
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
1.至于 #define只是一条预处理指令,实现简单的字符替换,在main.c的汇编代码里没有任何它的符号信息,所以在编译sub.c时报未定义编译错误。
2.至于:btw,一般处理多个源文件时,gcc该怎么用?
编译的时候可以加上 gcc --verbose *.c 看看过程.

另外,一段时间以后#define A 100这样的语句会被淘汰的,#define 最主要用在预编译上.


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-08-02 14:07 
头像

注册: 2005-06-28 18:08
帖子: 77
送出感谢: 0 次
接收感谢: 0 次
拆分了一下头文件,终于好了,谢谢各位:)


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译