linux下编译C语言

linux下编译C语言

ID:40749672

大小:49.50 KB

页数:7页

时间:2019-08-07

linux下编译C语言_第1页
linux下编译C语言_第2页
linux下编译C语言_第3页
linux下编译C语言_第4页
linux下编译C语言_第5页
资源描述:

《linux下编译C语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、GCC支持了许多不同的语言,包括C、C++、Ada、Fortran、ObjectiveC,Perl、Python和Ruby,甚至还有Java。  Linux内核和许多其他自由软件以及开放源码应用程序都是用C语言编写并使用GCC编译的。  编译C++程序:  -c只编译不连接  g++file1-c-ofile1.o  g++file2-c-ofile2.o  g++file1.ofile.o-oexec  g++-ca.cpp编译  g++-oaa.o生成可执行文件  也可以g++-oaa.cpp直接生成可执行文件。  1.编译单个源文件  为了进行测试,你可以创建“Hello

2、World”程序:  #include  #include  intmain(intargc,char**argv)  {  printf(“Helloworld!n”);  exit(0);  }  使用如下命令编译并测试这个代码:  #gcc-ohellohello.c  #./hello  Hellowordl!  在默认情况下产生的可执行程序名为a.out,但你通常可以通过gcc的“-o”选项来指定自己的可执行程序名称。  2.编译多个源文件  源文件message.c包含一个简单的消息打印函数:  #include

3、>  voidgoodbye_world(void)  {  printf(“Goodbye,world!n”);  }  使用gcc的“-c”标记来编译支持库代码:  #gcc-cmessage.c  这一过程的输出结果是一个名为message.o的文件,它包含适合连接到一个较大程序的已编译目标代码。  创建一个简单的示例程序,它包含一个调用goodbye_world的main函数  #include  voidgoodbye_world(void):  intmain(intargc,char**argv)  {  goodbye_world();  e

4、xit(0);  }  使用GCC编译这个程序:  #gcc-cmain.c  现在有了两个目标文件:message.o和main.o。它们包含能够被Linux执行的目标代码。要从这个目标代码创建Linux可执行程序,需要再一次调用GCC来执行连接阶段的工作:  #gcc-ogoodbyemessage.omain.o  运行编译结果:  #./goodbye  Goodbye,world!  前面这些单独的步骤也可以简化为一个命令,这是因为GCC对如何将多个源文件编译为一个可执行程序有内置的规则。  #gcc-ogoodbyemessage.cmain.c  #./goodb

5、ye  Goodbye,world!  3.使用外部函数库  GCC常常与包含标准例程的外部软件库结合使用,几乎每一个Linux应用程序都依赖于由GNUC函数库GLIBC。  应用外部函数库的例子:  #include  #include  #include  #defineMAX_INPUT25  intmain(intagrc,char**argv)  {  charinput[MAX_INPUT];  doubleangle;  printf(“Givemeanangle(inradians)==>”);  if(!f

6、gets(input,MAX_INPUT,stdin)){  perror(“anerroroccurred.n”);  }  angle=strtod(input,NULL);  printf(“sin(%e)=%en”,angle,sin(angle));  return0;  }编译命令:  #gcc-otrig-lmtrig.c  GCC的”-lm”选项,它告诉GCC查看系统提供的数学库(libm)。因为Linux和UNIX的系统函数库通常以”lib”为前缀,所以我们假设它存在。真正的函数库位置随系统的不同而不同,但它一般会位于目录/lib或/usr/lib中,在这些目

7、录中还有数以百计的其他必需的系统函数库。  4.共享函数库与静态函数库  Linux系统上的函数库分为两种不同的类型:共享的和静态的  静态函数库:每次当应用程序和静态连接的函数库一起编译时,任何引用的库函数中的代码都会被直接包含进最终的二进制程序。  共享函数库:包含每个库函数的单一全局版本,它在所有应用程序之间共享。这一过程背后所涉及的机制相当复杂,但主要依靠的是现代计算机的虚拟内存能力,它允许包含库函数的物理内存安全地在多个独立用户程序之间共享。  使用共享函数库不仅减少了文件的容量和

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。