当前位置: 首页 > news >正文

做二手机网站2012服务器如何做网站

做二手机网站,2012服务器如何做网站,海兴县网站建设公司,华为网站建设招聘1 前言 1.1 环境 平台:uabntu20.04 工具:vim,gcc,make 1.2 GCC Linux系统下的GCC(GNU Compiler Collection)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执…

1 前言

1.1 环境

        平台:uabntu20.04

        工具:vim,gcc,make

1.2 GCC

        

Linux系统下的GCC(GNU Compiler Collection)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

GCC编译器能将C、C++语言源程序、汇程式化序和目标程序编译、链接成可执行文件,如果没有给出可执行文件的名字,gcc将生成一个名为a.out的文件。

GCC编译器编译C源文件为可执行文件的步骤:

C源文件—->预处理.i—->编译.s(生成汇编文件)—->汇编.o/.obj(生成目标文件)—->链接.out(生成可执行文件)—->可执行文件
gcc命令参数(选项)

参数    含义    示例

参数含义示例
-c对文件进行预处理、编译和汇编,生成obj文件    gcc -c hello.c
-S 只进行预处理和编译,生成汇编代码gcc -S hello.c
-E只进行预处理,这个选项不生成文件,可以使用重定向或者-o选项使其生成一个文件 gcc -E hello.c > hello.i或者gcc -E hello.c -o hello.i
-o 指定目标的名称,默认为a.outgcc -o hello hello.c


       
过程演示

例如源代码main.c:

#include<stdio.h>int main(void) {printf("Hello World!\n");return 0; 
}


预编译:这个过程处理宏定义和include,去除注释,不会对语法进行检查。可以看到预编译后,源文件的代码从6行扩展了很多行,生成main.i

gcc -E main.c > main.i # 或者 gcc -E main.c -o main.i
// ...
// 只展示了一部分
extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
# 943 "/usr/include/stdio.h" 3 4# 2 "main.c" 2
int main(void) {printf("Hello World!\n");return 0;
}


编译:这个阶段,检查语法,生成汇编代码main.s

gcc -S main.c -o main.s
        .file   "main.c".section        .rodata
.LC0:.string "Hello World!".text.globl  main.type   main, @function
main:
.LFB0:.cfi_startprocpushq   %rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq    %rsp, %rbp.cfi_def_cfa_register 6movl    $.LC0, %edicall    putsmovl    $0, %eaxpopq    %rbp.cfi_def_cfa 7, 8ret.cfi_endproc
.LFE0:.size   main, .-main.ident  "GCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-44)".section        .note.GNU-stack,"",@progbits


汇编:这个阶段,生成目标代码main.o

gcc -c main.s -o main.o


链接:生成可执行代码main。
链接分为两种,一种是静态链接,另外一种是动态链接。
使用静态链接的好处是,依赖的动态链接库较少,对动态链接库的版本不会很敏感,具有较好的兼容性;缺点是生成的程序比较大。
使用动态链接的好处是,生成的程序比较小,占用较少的内存。

 

gcc main.o -o main

 运行

[root@HongyiZeng c]# ./main
Hello World!

 

1.3 make

make命令是GNU工程化中的一个编译工具。make是依赖于Makefile来编译多个源文件的工具。在Makefile里同样是用gcc(或者别的编译器)来编译程序。

可以使用以下命令直接生成可执行文件:

make main

直接运行

[root@HongyiZeng c]# ./main
Hello World!

 1.4 makefile

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作。

 1.4.1 使用gcc的例子

创建文件:

touch main.c tool1.c tool1.h tool2.c tool2.h

可以使用vim * -p打开当前目录下的所有文件。-p是打开多个文件的选项。

在命令模式下,gt切换到下一个标签页,gT切换到上一个标签页。

退出多个标签时,可加上a,例如:qa或者:wqa等

tool1.h和tool1.c

#ifndef __TOOL1_H__
#define __TOOL1_H__void mytool1();
#endif
#include <stdio.h>
#include "tool1.h" 
void mytool1() {printf("tool1 print...\n");
}

tool2.h和tool2.c

#ifndef __TOOL2_H__
#define __TOOL2_H__void mytool2();
#endif
#include <stdio.h>
#include "tool2.h"void mytool2() {printf("tool2 print...\n");
}

main.c

#include "tool1.h"
#include "tool2.h"int main(void) {mytool1();mytool2();return 0;
}

对所有文件进行编译:

gcc *.c

执行a.out

[root@HongyiZeng makefile]# ./a.out 
tool1 print...
tool2 print...

http://www.hyszgw.com/news/62957.html

相关文章:

  • 网站空间怎么备份免费咨询在线律师
  • app软件开发公司哪家好网站推广怎么做优化
  • 广东建设职业技术学院官方网站网站建设的创意
  • 企业做网站多少钱廊坊电子商务网站建设
  • 陕西省建设厅网站安全员报名百度股市行情上证指数
  • 网站的收费窗口怎么做企业策划包括哪些内容
  • 用php做网站要用构架吗网站建站案
  • 微信链接网站怎么做的新乡手机网站建设哪家好
  • 免费微网站哪个好用网站制作可以卖多少钱
  • 成都建设厅网站高端品牌网站建设兴田德润在哪儿
  • 网站建设一般好久到期设计网站开发
  • 网站开发用哪些字体江西工程建设信息网站
  • 免费建站源码桂林象鼻山夜景
  • 未成年人做网站内蒙古住房城乡建设部网站
  • 自己建设网站的利弊网站怎么做用户登录数据库
  • 南通网站定制公司百度推广托管
  • 网站建设销售在哪找客户做英德红茶的网站
  • 电力行业网站建设提供邯郸企业建网站
  • 网站制作 牛商网 岳阳 公司做网站业务员
  • 天津百度建网站怎样去推广一个平台
  • 佛山专业网站建设公司哪家好网站做搜索要用数据库吗
  • 帝国cms手机网站教程公司企业建言
  • 如何办好公司网站网站建设费用计入无形资产
  • 如何下载别人的网站做模板网站后台管理系统进不去怎么办
  • 自己免费做网站的流程wordpress百度贴吧
  • 吉林公司网站建设123cnn网址之家
  • 汕头模板建站平台wordpress首页导航代码
  • 天津开发区网站wordpress 模板文件
  • 网站建设加班卡盟网站是怎么建设的
  • 威海网站制作都有哪些做网站用什么软件啊