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

昆明经济技术开发区官方门户网站html简单网页代码图片

昆明经济技术开发区官方门户网站,html简单网页代码图片,泰安信息港官网,2003iis网站建设错误Linux编译器-gcc/g使用 1.设计样例 c语言#xff1a;linux中用的stdc99版本--可能会出现其他问题 c#xff1a;Linux中用的stdc11--使用c11版本 Linux没有文件格式的区分#xff0c;但是编译器区分 gcc编译器的文件格式是filename.c g编译器的文件格式是filename.cc或者fil… Linux编译器-gcc/g使用 1.设计样例 c语言linux中用的stdc99版本--可能会出现其他问题 cLinux中用的stdc11--使用c11版本 Linux没有文件格式的区分但是编译器区分 gcc编译器的文件格式是filename.c g编译器的文件格式是filename.cc或者filename.cpp gcc完成格式 格式 gcc [选项] 要编译的文件 [选项] [目标文件] gcc test.c -o my.exe -stdc99或者 gcc -o my.exe test.c -stdc99 都可以打印出结果 查看g版本属性 g -v或者g -version g的安装 安装的时候一定要以root的身份进行yum安装普通用户则无法安装 安装的指令如下普通用户下不能用sudo命令的可以看我之前的博客 sudo yum install -y gcc-c2.程序的翻译过程  在c语言中我们曾经说过c语言的编译过程就分为四个过程 1.预处理 2.编译 3.汇编 4.链接 通常我们在编译c语言程序中是会一步到位的编译出代码的结果而在4个阶段不会停止而现在可以将每一步停止从而看到每一步的作用  预处理 预处理的作用宏替换去注释头文件的展开以及条件编译 gcc命令 gcc -E test.c -o test.i 从现在开始程序的翻译预处理完成就停下 去注释  查看头文件的命令 vim /usr/include/stdio.h 用来查看预处理是否是头文件的展开 条件编译 如果编译成果第一个条件V1则不会去进行编译下面的程序 编译 编译的作用将c语言翻译成汇编语言 gcc命令 gcc -S test.i -o test.s从现在开始程序的编译编译完成就停下 得到汇编语言 汇编 汇编的作用将汇编语言翻译成二进制语言 gcc命令 gcc -c test.s -o my.exe 从现在开始程序的编译汇编完成就停下 得到二进制文件 链接 gcc命令 gcc -o test.o -o test.c 1.链接是什么  我们的程序需要与库结合而语言是一定要具有自己的库的 2.为什么?  a.让开发站在巨人的肩膀上 b.提高开发效率 3.怎么办 Linux中 动态库.so        与动态库链接就是动态链接 静态库.a         与静态库链接就是静态链接 ldd 可执行文件可以查看所连接可库  由此可以看到时运用的时动态链接 在这里涉及到一个重要的概念:函数库 我们的C程序中并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明,而没有定义函数的实现,那么,是在哪里实“printf”函数的呢? 最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时,gcc 会到 系统默认的搜索路径“/usr/lib”下进行查找,也就是链接到 libc.so.6 库函数中去,这样就能实现函 数“printf”了,而这也就是链接的作用 函数库一般分为静态库和动态库两种 静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为“.a” 动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为“.so”,如前面所述的 libc.so.6 就是动态库。gcc 在编译时默认使用动态库。完成了链接之后,gcc 就可以生成可执行文件,如下所示。 gcc hello.o –o hello gcc默认生成的二进制程序是动态链接的这点可以通过 file 命令验证 注意 c静态库时默认生成的 gcc默认生成的可执行程序是默认采用动态链接 动态库和动态链接的优缺点 1.不能丢失 2.节省资源 每一次程序编译时都要与动态库链接  查看动态库版本属性 ls /lib64/lib.so.6 -l 静态库和静态库链接的优缺点 1.一旦形成与库无关 2.浪费资源 静态链接时将静态库拷贝到文件中去占的内存较大  查看静态库版本属性 ls /lib64/libc.a -l默认情况下linux中是没有静态库的 动静态链接比较 动态链接会比静态链接产生文件会小很多也更加节省资源 Linux项目自动化构建工具-make/Makefile 1.背景 个工程中的源文件不计数其按类型、功能、模块分别放在若干个目录中makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂的功能操作 makefile带来的好处就是——“自动化编译”一旦写好只需要一个make命令整个工程完全自动编译极大的提高了软件开发的效率 make是一个命令工具是一个解释makefile中指令的命令工具make是一条命令makefile是一个文件两个搭配使用完成项目自动化构建 2.原理 makefileMakefile是和源代码同目录下的文件  如下是一个makefile文件中的内容 、 mytest目标文件        会默认形成第一个目标文件 test.c依赖文件列表可以多写文件空格隔开test1.c test2.c test3.c ... gcc test.c -o mytest -stdc99:是依赖方法 .PJONY xxx:对应的方法总是要被执行的如果没有.PHONY此方法执行过一此后若文件内容没有修改则不会再次执行 a.为什么makefile对最新的可执行程序默认不重新生成 为了提高编译的效率 b.怎么做到的 对比可执行文件修改的时间和源文件最近修改的时间如果可执行文件修改时间早于源文件则重新生成反之则不生成。 3.我们自己的makefile 看一个新版的makefile $:表示扩展打开中定义的变量 $:表示包含的目标文件 $^:表示所有包含的依赖列表 makefile定义变量时等号两边不能带空格 $mytest$^test.c 那要怎么隐藏我们所make命令后总是会出现的依赖方法 依赖方法可以隐藏打印过程 touch 文件名是刷新文件来让make可以重新编译 4.用程序运行的过程来用makefile运行 由上可以看出我们写出的makefile文件和程序的运行过程是反过来的依旧可以运行原先运行时只是默认运行第一个列表的依赖方法但是这个make命令后却运行出来全部的命令。 原因         目标文件需要依赖文件列表来实现但是如上代码和程序运行顺序可知要运行可执行程序my.exe需要test.o文件之后再会向下查找有无文件test.o文件也需要test.s文件再向下查找test.s文件也需要test.i文件再向下查找test.i文件需要test.c文件找到test.c文件之后再逐层向上运行依赖方法依次得到test.itest.stest.omy.exe.
http://www.zqtcl.cn/news/952102/

相关文章:

  • 营销型网站建设遨龙仙居住房和城乡建设规划局网站
  • 中国做视频网站有哪些淘宝做详情页代码网站
  • 网站开发一般多钱在网站设计公司上班好吗
  • 餐饮连锁企业网站建设方案北京软件研发公司
  • 外国网站架构新闻稿
  • 营销网站建设企划案例友情链接怎么添加
  • seo网站搜索优化目前好的推广平台
  • 快速搭建网站页面黄页88网免费发布信息
  • 做网站能赚吗网址大全查询ip地址
  • html5网站正在建设中商城网站系统
  • 室内设计网课北京网站优化前景
  • 北京 网站建设 知乎上海公司买新能源车
  • 成都微网站wordpress 购买
  • 网站开发一般要用到哪些软件软件开发工程师机构
  • dj网站开发建设网站备案 换空间
  • 网站建设哪家最好网站开发怎么报价
  • app 微商城网站建设网站建设流程百科
  • 网站短期培训学校小说网站怎么建设的
  • 最简单的免费网站制作模板电子商务 网站系统
  • 网站域名备案授权书网站建设长春
  • 网站维护主要从哪几个方面做seo营销的概念
  • 北京网站建设营销网站策划案4500
  • 网站建设售后培训wordpress 过滤html
  • 湖北森泰建设集团有限公司网站国外产品设计网站推荐
  • 网站建设与代运营产品介绍排版网页设计教程
  • 音乐网站排名搜索引擎网络推广方法
  • asp.net 企业网站昆明高端seo怎么做
  • 图书馆网站建设需求方案企业网站背景图片
  • 网站app的作用做家教网站资质
  • 资源网站搭建北京app网站建设