文档章节

Linux使用gcc进行编译

熊猫88
 熊猫88
发布于 2016/01/29 10:14
字数 524
阅读 50
收藏 2

                  
   GCC可以将写成的C语言代码编译成为可执行文件。这里简单使用GCC编译器编译一个C语言文件。
   这里暂时用到俩个参数,gcc  -c 只编译源文件但不连接,会把.c和.cc的源程序变成目标文件
   gcc  -o  用于指定输出(out)文件名。不用-o的话,会在当前文件夹下生成默认的文件作为可执行程序。
   gcc编译过程是先把源文件(.c)编译成汇编码(.s),再把汇编码汇编成目标代码(.o),再链接成可执行程序(ELF)。(.o)是目标代码,已经是二进制的机器码了,所以用文本编辑器看会乱码。但还不能执行,还要链接才能执行。
   先在Linux下写个简单的hello  world
   下个简单的C语言文件hello.c(可以直接用vim进行敲代码)
   #include <stdio.h>
    int main(void)
   {
    printf("Hello World!\n");
    return 0;
    }
    C语言的定义比PHP要严格很多,这里仅仅作为演示。
    gcc  hello.c  -o  hello  
    把hello.c编译成可以执行文件hello
    然后./hello  (执行当前文件夹下的hello程序)
    如果切换到外层目录test  可以直接用  test/hello 就可以直接看到运行
    hello  world的结果。
   
   因为PHP的底层是C编写,要深入了解PHP,需要对C的基础语法做个整理:
1.标准库
#include <stdio.h>          :标准输入输出文件库
#include <stdlib.h>:标准文件操作库
#include <string.h>:字符处理函数库
2.每个程序里有个main()
 int  main()
 {
  int  a = 1;
  int   b = 2;
  int   sum =0;
 sum = func(a,b);
printf("%d",c);
 return 0;
 }
 int   func(int val1,int val2) {
  return  val1+val2;
 }
打包编译后,就可以打印出对应的val1和val2的值
特点:强类型,每个函数的返回值都需要定义,使用的每个变量也需要预先定义类型,否则是无法使用的。

© 著作权归作者所有

共有 人打赏支持
熊猫88
粉丝 18
博文 76
码字总数 65366
作品 0
程序员
私信 提问
嵌入式交叉编译环境的搭建过程,图文解说

我晕,竟然图片不显示,还是看我的新浪博客吧!http://blog.sina.com.cn/s/blog_b90c3cdf0101g1p1.html 电脑系统:win7系统。虚拟机系统:workstation6.5 。虚拟机安装的linux版本:fedora9...

长平狐
2013/06/17
786
0
arm-linux-gcc 常用参数讲解 gcc编译器使用方法

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc。下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家。 在此之前首先介绍下编译器的工作过程,在使用GCC...

小猴纸
2013/01/04
0
0
Linux编译安装中configure、make和make install各自的作用

这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。...

Surjur
2014/11/27
0
0
CentOS6.6编译安装GCC-5.2.0

CentOS6.6编译安装GCC-5.2.0 Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了。 2015年GCC也出到了5.2.0版本,对于C++11/14也有了更好的支持了。 所以,今天...

zhusas
07/04
0
0
浅析gcc、arm-linux-gcc和arm-elf-gcc的关系

浅析gcc、arm-linux-gcc和arm-elf-gcc的关系 嵌入式开发交流群280352802,欢迎加入! 一、GCC简介 The GNU Compiler Collection,通常简称 GCC,是一套由 GNU 开发的编译器集,为什么是编辑器...

长平狐
2013/06/03
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

大数据学习有哪几个步骤

目前大数据行业异常火爆,不少人都对大数据充满了兴趣,其中有大部分人都从没接触过大数据,对于应该如何学习大数据一头雾水。大数据学习并不是高深莫测的,虽然它并没有多简单,但是通过努力...

董黎明
12分钟前
0
0
shell习题_3

1:监控httpd的进程;每隔10s检测一次服务器的httpd的进程数,如果大于500则自动重启httpd服务;并检测是否启动成功; 如果没有正常启动还需要再启动一次,最大不成功数超过五次立即发邮件给管理...

芬野de博客
12分钟前
0
0
Android 9.0 优势探讨

我们来谈论一下 Android。尽管 Android 只是一款内核经过修改的 Linux,但经过多年的发展,Android 开发者们(或许包括正在阅读这篇文章的你)已经为这个平台的演变做出了很多值得称道的贡献...

问题终结者
29分钟前
1
0
vue 组件使用中的一些细节点

细节一 基础例子 运行结果: 以上大家都懂,这边就不多说,回到代码里,有时候我们需要 tbody 里面每一行是一个子组件,那我们代码可以怎么写呢?我们可以这样写,定义一个全局组件,如下: ...

peakedness丶
36分钟前
2
0
vue 之 css module的使用方法

动手之前先配置项目,网上很多文章说需要下载css-loader插件,Vue中的vue-loader已经集成了 CSS Modules,因此删掉也能正常运行 在vue.config.js中添加如下配置 `css: {``loaderOptions: ...

前端小攻略
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部