CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

如何编译多文件的源代码?

楼主xhenry()2004-08-03 14:58:00 在 Linux/Unix社区 / 程序开发区 提问

现在有一程序,由5个文件构成(.c和.h)。代码肯定是正确的,在os400上跑着。现在我做了些修改,准备先在redhat9下测试。我已完全安装gcc。  
   
  问题一,以下头文件在redhat9中都有吗?  
  #include   <fcntl.h>  
  #include   <sys/times.h>  
  #include   <unistd.h>  
  #include   <sys/time.h>  
  #include   <time.h>  
  #include   <signal.h>  
  #include   <stdlib.h>  
  #include   <errno.h>  
  #include   <string.h>  
  #include   <strings.h>  
  #include   <sys/types.h>  
  #include   <netinet/in.h>  
  #include   <sys/socket.h>  
  #include   <sys/wait.h>  
  #include   <sys/select.h>  
   
  问题二,习惯了windows下VC集成编译环境,不知在linux下如何将多个文件编译成执行文件。 问题点数:100、回复次数:10Top

1 楼tianxiangyuan(潇湘夜雨)回复于 2004-08-03 15:29:36 得分 5

1、有  
  2、学习写makefile吧Top

2 楼raylei()回复于 2004-08-03 15:30:20 得分 50

问题一   都有  
  问题二   写makefile  
   
  CC               =   gcc  
  CFLAGS       =    
  INCDIR       =   -I./h   ../h  
  LIBS           =    
  BINNAME     =   test  
   
  COBJS   =   a1.o   a2.o   ./dir1/a3.o  
   
  .SUFFIXES:   .o   .c  
   
  .c.o: ; $(CC)   $(CFLAGS)   -c   $*.c  
   
  #---------------------   Dependency   starts   here   -------------------  
   
  all:   $(COBJS)  
  $(CC)   $(LIBS)   -o   $(BINNAME)   $(COBJS)  
   
  clean:   /tmp  
  -rm   -fr   $(COBJS)  
  -rm   -fr   $(BINNAME)  
   
   
  #   DO   NOT   DELETETop

3 楼xhenry()回复于 2004-08-03 16:15:53 得分 0

楼上的makefile写的太乱了,给个清晰,短小的例子,哪怕只包含两个源文件。  
  makefile文件写完后怎么用?  
   
  另外,redhat下有没有类似VC的集成环境,只要把源文件加进入,就能编译。  
  Top

4 楼blankman(菜鸟)回复于 2004-08-03 16:26:47 得分 10

a.c   b.c  
   
  gcc   -o   exefile   a.c   b.cTop

5 楼toxyboy(不专业,我就顶,绝不误导别人!!)回复于 2004-08-03 17:00:46 得分 10

makefile   写完后用make命令就可以了。  
  依照楼主的意思makefile可以这样写:  
  [tab]gcc   -o   exefile   a.c   b.c  
  redha下好像没有那么vc这样的IDE,呵呵。Top

6 楼lvgame(boy02)回复于 2004-08-03 17:27:29 得分 10

makefile的语法不是很复杂的,记得前一阵这里有人贴了个写makefile的,不错,找找应该还在的。  
   
  有可以直接给你生成makefile的东西,好像叫makeconf吧,记不太清,可以为你直接写好makefile,不过好像效率不高。其实自己写并不复杂,用我们老师的话,你连几百个文件的代码都写了,还在乎写个makefile吗:)Top

7 楼Brierbird(荆棘鸟)回复于 2004-08-03 17:39:10 得分 10

关于makefile,看《跟我一起写makefile》:  
  http://www.vczx.com/forum/attachment.php?s=f5bf01c9b3f2f1945117e415720bc353&postid=3391Top

8 楼yjf7888(seeking a place 找工作了location:Chengdu)回复于 2004-08-03 17:58:31 得分 5

makefile,拷个模板照着套就行了Top

9 楼xhenry()回复于 2004-08-04 10:24:32 得分 0

真奇怪,文件a.c包含头文件a.h,a.h中定义了一些符号常量和函数,然后a.c中使用了这些常量和函数。  
   
  然后我开始编译,在cygwin环境中cc   a.c   -c   a.o   没有问题。但在red   hat9中用同样的指令编译时,提示变量、函数未定义,为什么?Top

10 楼racky6362()回复于 2004-08-07 12:38:16 得分 0

用shell也一样可以的  
   
  #!/bin/sh  
  out=file   name  
  ........//gcc   ..  
  ........   //gcc   ..Top

相关问题

  • 如何编译一个已经有源代码的dll文件?
  • 如何将源代码编译成DLL?
  • MYSQL源代码如何编译?
  • 请问如何得到STL的源代码,而不是头文件+编译好的库文件?
  • 头一次用VC,下了源代码,里面好多文件,不知如何编译出exe文件?
  • 怎样将DLL文件反编译成源代码??
  • 如何用Borland C++ Compiler编译VC++写的源代码?
  • 请教:如何用vc编译windows程序的c源代码?
  • C#编制的dll如何反编译成源代码??
  • 如何查看编译过的dll中的源代码?

关键词

  • 编译
  • 文件
  • 函数
  • redhat
  • gcc
  • binname
  • makefile
  • cobjs
  • 好像
  • 问题

得分解答快速导航

  • 帖主:xhenry
  • tianxiangyuan
  • raylei
  • blankman
  • toxyboy
  • lvgame
  • Brierbird
  • yjf7888

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo