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

南京市建设执业资格中心网站大连网站建设主页

南京市建设执业资格中心网站,大连网站建设主页,上海百度seo牛巨微,适合建设网站的国外服务器一、编译流程 一个C程序从源代码到可执行程序一共有四个过程#xff1a;预处理-编译-汇编-链接 次序执行流程功能GCC命令1预处理展开头文件、宏替换、去掉注释、条件编译gcc - E main.c - o main.i2编译检查语法#xff0c;生成汇编程序gcc - S main.i - o mai…一、编译流程 一个C程序从源代码到可执行程序一共有四个过程预处理-编译-汇编-链接 次序执行流程功能GCC命令1预处理展开头文件、宏替换、去掉注释、条件编译gcc - E main.c - o main.i2编译检查语法生成汇编程序gcc - S main.i - o main.s3汇编汇编代码转换为机器码gcc - c hello.s - o main.o4链接链接各个文件一起生成可执行文件gcc main.o - o main 1. 预处理 预处理就是在C语言源文件和头文件中的所有以#开始的行都属于预处理的范畴预处理命令一般有一下几种 类别符号主要作用宏定义#define,#undef,#include基本上即使做字符替换条件编译#if,#else,#elif,#endif,#ifdef,#ifndef和C语言的分支语句一样不过这个告知编译器的信息输出#error,#warning分别输出错误级别信息和警告级别信息设置#line,#pragma向编译器发送一些指令 二、命令选项 o小写 指定生成(输出)文件名称如: gcc -o helloworld helloworld.c. O大写 编译器的优化选项格式为-On(n0,1,2,3),默认为1,0表示不优化3表示最高优化级别 I 指定源文件所需要引用的头文件 目录(可以是相对路径), 如gcc -I./include test.c* l小写 指定需要链接的库文件(去掉前缀lib和文件名后缀.so,.a)。 如 rootseven:~/projects/test# ls hello.c hello.o liblog.so liblog.a libtest.so libtest.a rootseven:~/projects/test# gcc -o helo -llog -ltest -L./ hello.o注 当同一目录同时存在静态库和动态库时GCC默认链接动态库 当静态库和动态库在不同目录下时先检索到哪个库就链接哪个库。 L大写 指定非系统库文件路径之外的库路径。 D 指定通过命令行定义宏:-Dmaro | -Dmarovalue,可以用来在不修改源码的情况下编译不同版本的固件。 如 rootseven:~/projects/gcc# ls gcc_test.c rootseven:~/projects/gcc# rootseven:~/projects/gcc# cat gcc_test.c #include stdio.h #if defined(Debug) #define clog(format, ...) printf(format, ##__VA_ARGS__) #else #define clog(format, ...) #endif // defined(Debug)#ifndef Num #define Num 100 #endif // !Numint main(int argc, char **argv) {printf(gcc test %d\n, Num);clog(Debug bin\n);return 0; } rootseven:~/projects/gcc# gcc -o gcc_rc gcc_test.c rootseven:~/projects/gcc# gcc -DNum1 -o gcc_rc1 gcc_test.c rootseven:~/projects/gcc# gcc -DDebug -o gcc_dbg gcc_test.c rootseven:~/projects/gcc# ./gcc_rc gcc test 100 rootseven:~/projects/gcc# ./gcc_rc1 gcc test 1 rootseven:~/projects/gcc# ./gcc_dbg gcc test 100 Debug binX 指明使用的编程语言。允许的语言包括c c assembler none 。 none意味着恢复默认行为即根据文件的扩展名猜测源文件的语言。 E 仅进行预处理不生成文档会将信息直接打印到终端。 S 只进行预处理和编译把文档编译成汇编代码并生成*.s文件。 c小写 进行预处理编译和汇编,生成Object文件。 C大写 在预处理时不删除注释信息一般和E一起使用用于分析源码 w小写 禁止显示所有警告信息。 W大写 显示指定警告信息 格式为: -Woption1,option2 options说明all打开一些默认的警告项error将警告视为错误extra打印一些额外的警告信息pointer-arith对函数指针或void *类型指针进行算术操作时发出警告shadow当一个局部变量遮盖住另一个局部变量或者全局变量时发出警告undef当一个没有定义的符号出现在 #if 后时发出警告redundant-decls同一作用域内某定义多次声明发出警告…… ansi 支持符合ANSI标准的C程序。这样就会关闭GNU C中某些不兼容ANSI C的特性。 std 指定遵守的语言标准 标准c89c99c11gnu99gnu11c98c11c14c17gnu11 98gnu11 11gnu11 14… 使用示例 生成可执行文件 最基础的就是直接使用命令gcc 然后将所有的C文件名作为参数输入 rootseven:~/projects/test# gcc -o test test_1.c test_2.c test_3.c生成库文件 库的生成和可执行文件的生成基本一致只是最后的链接阶段有些许差异。 动态库的生成 rootseven:~/projects/test# gcc -c hello.c -o hello.o rootseven:~/projects/test# gcc -fPIC -shared -o libtest.so test.c静态库的生成 rootseven:~/projects/test# gcc -c hello.c -o hello.o rootseven:~/projects/test# ar cqs libhello.a hello.o
http://www.pierceye.com/news/50751/

相关文章:

  • 网站域名地址查询浙江建设工程信息网官网入口网址
  • 快手做任务网站无货源电商选品软件
  • 音乐网站开发企业部门网站建设流程
  • 个体户 网站建设wordpress 插件 更新
  • 深圳市网站建设公电商网站规划的开发背景
  • 上街区网站建设视频直播网站开发运营步骤
  • 网站后期维护流程人武部正规化建设的意义
  • 不规则网站模板每天做特卖的网站是哪个
  • 做微信的网站秀客搜索引擎营销广告
  • 网站开发平台介绍wordpress 添加侧边栏
  • 网站建设开题报告数据库建立30个免费货源网站
  • 网站建设pdf 下载工商银行建设银行招商银行网站
  • 做网站优化如何遍文章seo顾问张智伟
  • 设计企业网站首页成都广告传媒公司前十名
  • 建设网站哪些好做网站 后端是谁来做的
  • 北京做网站好的公司青岛专业设计网站公司
  • 嘉兴做网站seo的国家企业信用系统查询系统
  • 专业做招聘的网站有哪些贵州省建设厅公示网站
  • 新网站制作怎么样seo整站优化一年价格多少
  • 阿里云建站流程天元建设集团有限公司承兑汇票兑付
  • 网站网站在国外做影视网站用什么网盘最好
  • 广州做手机网站咨询网站开发组件拖拽
  • seo关键词优化提高网站排名网站地图对网站有什么意义
  • 企业电子网站的建设案例十堰外贸网站建设
  • 青岛专业网站开发百度网站推广电话
  • 公司刚做网站在那里找图片做前端转行可以找啥工作
  • 环球易购做中东的网站网站上做播放器流量算谁的
  • 国内团购网站做的最好的是北京软件开发年薪
  • 商务贸易网站建设万网搜
  • 深圳做网上商城网站莱芜金点子信息港最新招聘信息港