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

怎么做网站不被发现专业旅游网站开发系统

怎么做网站不被发现,专业旅游网站开发系统,为什么不做网站做公众号,静态网页是什么意思文章目录 1 gcc/g1.1 预处理1.2 编译1.3 汇编1.4 链接1.4.1 静态链接1.4.2 动态链接 2 make和makefile2.1 依赖关系2.2 依赖方法2.3 伪目标 3 总结 1 gcc/g 当我们创建一个文件#xff0c;并向里面写入代码#xff0c;此时#xff0c;我们该如何使我们的代码能够运行起来呢1.1 预处理1.2 编译1.3 汇编1.4 链接1.4.1 静态链接1.4.2 动态链接 2 make和makefile2.1 依赖关系2.2 依赖方法2.3 伪目标 3 总结 1 gcc/g 当我们创建一个文件并向里面写入代码此时我们该如何使我们的代码能够运行起来呢 如果是在windows的vs下只需要点击运行就行了现在在Linux下该如何运行 我们需要使用gcc编译器来编译已经写好的test.c源文件 编译之后会在当前目录之下生成可执行程序运行可执行程序即可 使用红框中的命令gcc test.c -o test 就完成了对源文件的编译。 之后生成了可执行程序test. 运行test即可执行我们的可执行程序。 补充c语言的程序用gcc编译c的程序用g编译 格式 gcc - 选项 源文件名 -o 目标文件名选项 -E 从当前文件开始在预处理完成之后停止 生成的文件后缀一般加i -S 从当前文件开始在编译完成之后停止 生成的文件后缀一般加s -c 从当前文件开始在汇编完成之后停止 生成的文件后缀一般加o 1.1 预处理 预处理的作用 去除注释展开头文件处理条件编译进行宏替换 命令 gcc -E 文件名.c -o 文件名.i 左边是test.c文件右边是test.i文件预处理文件 1.2 编译 命令 gcc -S 文件名.i -o 文件名.s 功能将预处理文件编译成汇编语言 1.3 汇编 命令 gcc -c 文件名.s -o 文件名.o 功能将编译生成的.s文件中的内容转变成机器能识别的二进制机器码。 可以通过od命令查看.o文件 将二进制机器码以十六进制的形式显示出来。 1.4 链接 到这一步时候我们的文件是,o的汇编文件。 这里有一个问题我们写的程序中使用到了printf()函数但是我们并没有写printf()函数的实现方法和定义等为什么执行程序的时候不会报错 因为我们使用了库函数 printf()函数很明显是库函数。假设我们不包含stdio.h头文件我们的程序必然会报错。 我们包了stdio.h文件之后就能使用了吗 也不是因为我们知道.h只是一个头文件相当于有一个函数的声明但是没有函数的具体定义函数的具体定义肯定是一个文件。 假设库的创建者写了1000个函数分为两个文件。其中函数的实现叫做c和定义叫做c.h。 库的创建者不想给我们看函数的具体实现。所以对这个库进行的封装。但是他必须提供库的使用方法所以又把头文件给了我们提供给我们具体的使用方法。 我们通过头文件得知使用方法之后在我们的c程序执行到库函数时候就会链接到库中的库函数。库函数也是.o目标文件将我们自己的程序和库函数链接到一起就会生成可执行程序.exe。 那么该如何找到库呢 在没有特别指定时,gcc 会到系统默认的搜索路径“/usr/lib”下进行查找。 链接的库分为静态库和动态库。 1.4.1 静态链接 当我们的函数执行到库函数的时候跳转到链接的库函数将库函数中该函数的实现拷贝到当前程序文件中。再此之后再生成可执行文件。 静态链接的指令gcc 文件名.o -o 文件名 -static 1.4.2 动态链接 当执行到库函数时跳转到动态库中找到该函数的.o文件去链接标准库中库函数的.o文件。链接完之后再跳转回来。 通过ldd命令可以查看a.out链接的动态库。 图中的红框就是我们链接的动态库c 库的名称为去掉前缀去掉后缀图中就是去掉前缀lib,去掉后缀.so最后得到c 通过file指令查看文件的属性 黄色框中说明这是一个动态链接链接的是动态库。 动态链接和静态链接的区别是什么 通过上图可以看出静态链接比动态链接之后的文件大很多。 这是因为动态链接是直接跳转而静态链接是将静态库中的内容拷贝到文件中 总结 静态库或者动态库一个系统只有一个所有使用系统的用户都在使用同一个库。静态链接后的可执行程序不会受到静态库升级或者被删除的影响而动态库会受到影响。系统为了我们编程提供了标准库的头文件.h和动静态库.so/.a头文件是为了告诉我们怎么使用库函数动静态库中提供了库函数的具体实现方法。 2 make和makefile make 是方法makefile是文件 创建makefile文件 写入makefile文件 效果 从上面的操作中我们可以看到以前我们每次编译文件都需要输入gcc等一系列命令。现在只需要使用make就自动编译成功了。 makefile带来的好处就是——“自动化编译”一旦写好只需要一个make命令整个工程完全自动编译极大的提高了软件开发的效率。一个工程中的源文件不计数其按类型、功能、模块分别放在若干个目录中makefile定义了一系列的规则来指定哪些文件需要先编译哪些文件需要后编译哪些文件需要重新编译甚至于进行更复杂的功能操作。 接下来分步解析。 2.1 依赖关系 什么是依赖关系 a:b ----- 叫做a依赖b有了b的存在才会有a的存在。 在makefile中gcc编译的时候有哪些依赖关系呢 2.2 依赖方法 依赖关系解决的谁以来谁的问题 依赖方法解决的是怎样依赖的问题 红框的内容就是依赖方法 在makefile中依赖关系和依赖方法是必须写的并且必须是一一对应的 2.3 伪目标 在makefile中同样是可以删除文件的。 执行情况 其中.PHONY:clean 这句话中.PHONY就是伪目标clean被.PHONY修饰的 被.PHONY修饰的对象就是一个伪目标。伪目标总是被执行。 如何理解伪目标总是被执行这句话 首先理解什么文件不是总被执行。 可以看到在执行第一次make的时候可以正常执行执行第二次make的时候就不能了。 为什么呢 在使用stat命令之后可以看到一个文件的ACM时间分别是图上所示。 我们使用ll命令显示的就是文件的内容修改时间 可以看到test.c文件的最后一次被修改时间比test的最后一次被修改时间早。 这就意味着可执行文件如果再次执行其实内容是没有改变的。 如果test.c文件在test文件之后又被修改过那么Modify时间应该比test文件的时间晚这样再次编译的时候才会有效果。而如果test.c的时间比test时间早说明test.c文件没有被修改过。因此也就没有再次编译的必要。 这是编译器为了更高效的举动。 验证 从上面可以知道make不是总被执行那么。伪目标是总被执行的怎么验证? 只要执行make clean 就一直会执行不会出现阻碍。 而clean正是被.PHONY修饰的伪目标 执行 发现给make加上伪目标之后make也总是被执行。 **clean:**之后没有东西说明依赖关系也可以为空 3 总结 编译链接分为预处理、编译、汇编、链接四个部分。使用到的命令如下 .c文件预处理变成.i文件.i文件编译变成.s文件.s文件汇编变成.o文件.o文件链接变成可执行程序 其中链接分为动态链接和静态链接。 静态链接将静态库中的.o程序拷贝到我们的程序执行静态链接需要到系统默认的路径usr/lib中去找静态库如果找不到就会报链接错误。 如果使用的是第三方库需要用特定的方法链接到库。 makefile中有依赖关系依赖方法和伪目标。 其中依赖关系和依赖方法是一一对应的。 依赖关系也可以为空。 伪目标.PHONY表示总是执行 没有伪目标的文件通过判断文件的Modify时间来决定是否编译 如果.c文件的Modify时间早于可执行文件 ---- 不执行如果.c文件的Modify时间晚于可执行文件 ---- 执行
http://www.pierceye.com/news/261516/

相关文章:

  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计
  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位
  • 赤峰建设业协会的官方网站wordpress博客伪静态
  • 2016个人做淘宝客网站网站备案备注信息