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

php mysql dreamweaver网站建设seo线上培训多少钱

php mysql dreamweaver网站建设,seo线上培训多少钱,网站设计hb软件,手机怎么弄微信公众号一、gcc/g gcc/g是编译器,gcc是GCC(GUN Compiler Collection,GUN编译器集合)中的C编译器;g是GCC中的C编译器。使用g编译文件时会自动链接STL标准库,而gcc不会自动链接STL标准库。下面简单介绍一下Linux环境下(Windows差…

一、gcc/g++

  gcc/g++是编译器,gccGCC(GUN Compiler Collection,GUN编译器集合)中的C编译器g++是GCC中的C++编译器。使用g++编译文件时会自动链接STL标准库,而gcc不会自动链接STL标准库。下面简单介绍一下Linux环境下(Windows差别不大),程序翻译的过程:

1.1 预处理(头文件展开,条件编译,宏替换,去注释等)

gcc -E filename.c -o filename.o

其中, -E 从现在开始进行程序的翻译,预处理做完,就停下来。

1.2 编译(C/C++语言 --> 汇编语言)

gcc -S filename.c
//默认生成filename.s文件
gcc -S filename.c -o filename.s
//亦可以
gcc -S filename.i
gcc -S filename.i -o filename.s

其中,参数 -S 从现在开始进行程序的翻译,当编译做完,就停下来。下图为程序预处理编译过程中形成的目标文件test.i与test.s。

image-20230302165934759

1.3 汇编(汇编 --> 可重定位目标二进制文件,不可以被执行的,bin.obj)

简单来说,汇编的具体功能,就是把我们自己的代码进行翻译形成二进制目标文件。

gcc -c filename.s
gcc -c filename.s -o filename.o

其中, -c 从现在开始进行程序的翻译,当汇编做完就停下来。

1.4 链接(将我们自己形成的.obj文件和库文件某种合并,形成可执行程序)

gcc filename.o -o filename//可自定义输出的文件名
gcc -o filename filename.o//亦可以

其中,-o 后面是指定生成的可执行程序的名称

二、链接

  指令ldd能够检测当前被形成的可执行程序都依赖哪些库:

ldd 可执行程序名

image-20230302165338328

为什么我们能够在Linux下进行C/C++代码的编写和编译?这是因为Linux系统默认已经携带了语言级别的头文件和语言对应的。centos中,头文件一般在/usr/include/路径下:

image-20230302170319292

此外,库本质上也是文件,其分为两种:静态库和动态库;

​ 静态库:lib开头+库名+.a结尾;

​ 例如libXXXXXXX.a

​ 动态库:lib开头+库名+.so结尾;

​ 例如libXXXXXXX.so

  为了更直观地讲述静态/动态库名,进行了ldd指令检测当前可执行程序使用的依赖库,下图中,m-2.17为动态库名。Linux的指令相当一部分是用C语言编写的,因而指令就是程序、工具。

image-20230302171030807

image-20230302171307192

动静态库的小结

库分为静态库(专门让编译器,对用户的程序进行静态链接的)和动态库(专门让编译器,对用户的程序进行动态链接的);

静态库和静态链接:链接的时候,如果是静态链接,找到静态库,拷贝静态库中的我们所需要的代码到自己的可执行程序中;

动态库和动态链接:链接的时候,如果是动态链接,找到动态库,拷贝动态库中我们所需要的代码的地址到自己的可执行程序中相关的位置;

静态链接成功:我们的程序,不依赖任何库,自己就可以独立运行;

动态链接成功:我们的程序,还是依赖动态库,一旦动态库缺失,我们的程序便无法运行;

静态库,因为自身拷贝的问题,比较浪费空间;

动态库,亦是共享库,因为可以做到被大家共享方法,所以真正的实现永远都在库中,程序内部只有地址,比较节省空间;

注意:Linux默认使用的是动态链接和动态库

image-20230303124142208

  上图中,通过file test.cpp可以确认test.cpp是一个C++代码,亦是一个文本类文件;file mytestELF可执行程序,64-bit LSB executable表示64位的可执行程序,dynamically linked动态共享连接。

image-20230303130351494

  上图中,在使用静态库编译test.cpp时,出现了无法找到静态库的故障,这是因为Linux系统中,默认没有安装静态库,需要用户自行安装。C++静态库的安装指令:

sudo yum install glibc-static libstdc++-static -y

  下图中,使用动态库生成的可执行程序myfile占用9064bit,使用静态库生成的可执行程序myfile-static明显比动态库生成的可执行程序占用空间大得多。

image-20230303133433150

使用file指令能够直接看出可执行程序myfile-static使用了静态库进行程序的链接。

image-20230303133656665

三、自动化构建工具make/Makefile

  在Linux中编写一个程序,每次编译时都需要一行一行地敲命令,对于小程序还好,而对大型程序就不是很友好,不但浪费时间还会输入命令错误。面对这些情况,Linux提供了make命令和makefile文件来解决这类问题。make是一个命令,makefile是一个文件且其位于当前源代码路径下。

3.1 案例

  在test_03_02目录下,创建myfile.cc的C++文件,以及Makefile文件:

image-20230303141252956

下图为Makefile文件中的内容,其中myfile是形成可执行程序的目标文件,它需要依赖myfile.c文件。

image-20230303141126311

make命令,自动在当前路径下查找Makefile文件,执行文件中内置好的命令。

image-20230303141345348

3.2 规则

makefile是一个围绕依赖关系和依赖方法构建的一个自动化编译的工具,包含了依赖关系和依赖方法:

image-20230303142130860

注意:依赖关系中,目标文件对应的依赖文件列表可以空

直接使用make命令进行自动化编译,生成了myfile.i、myfile.s、myfile.o和myfile这四个文件。

image-20230303150715942

文件有生成必然就有清理,make依然提供清理的能力:

image-20230303150600200

  使用了make指令后,继续使用make编译时却不被允许,而make clean却可以多次执行,这是因为清理使用了.PHONY进行了欺骗,make的过程也可以。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yN2GfUxa-1677849319595)(https://gitee.com/joes_ju/personal_images/raw/master/img/202303031530148.png)]

.PHONY:目标文件
//总是被执行的

导致使用make命令后不能继续使用make命令,是由于源代码文件myfile.cc的修改时间早于目标文件myfile的修改时间,因此myfile比myfile.cc新,不需要再执行编译。

image-20230303153137493

对于这种现象,除了使用.PHONY欺骗外,亦可通过touch一个已经存在的文件,其作用是更新该文件的修改时间:

image-20230303153545563

在这里插入图片描述


文章转载自:
http://dinncobacilliform.bkqw.cn
http://dinncovibrative.bkqw.cn
http://dinncofern.bkqw.cn
http://dinncoscrag.bkqw.cn
http://dinncohydrosere.bkqw.cn
http://dinncocult.bkqw.cn
http://dinncosubside.bkqw.cn
http://dinncosertoman.bkqw.cn
http://dinncoamoebiasis.bkqw.cn
http://dinncocurator.bkqw.cn
http://dinncounrealistic.bkqw.cn
http://dinncopsilanthropism.bkqw.cn
http://dinncoinstantize.bkqw.cn
http://dinncokinfolks.bkqw.cn
http://dinncodeemphasize.bkqw.cn
http://dinncoquadrode.bkqw.cn
http://dinncocloudless.bkqw.cn
http://dinncobilobate.bkqw.cn
http://dinncodarby.bkqw.cn
http://dinncodecimet.bkqw.cn
http://dinncoeuramerican.bkqw.cn
http://dinncoaquarist.bkqw.cn
http://dinncoslapping.bkqw.cn
http://dinncoluzern.bkqw.cn
http://dinncowop.bkqw.cn
http://dinncogull.bkqw.cn
http://dinncoviole.bkqw.cn
http://dinncomalvoisie.bkqw.cn
http://dinncospellable.bkqw.cn
http://dinncoovovitellin.bkqw.cn
http://dinncodisembowel.bkqw.cn
http://dinncojudaeophil.bkqw.cn
http://dinnconarrowcasting.bkqw.cn
http://dinncohate.bkqw.cn
http://dinncodie.bkqw.cn
http://dinncoviolone.bkqw.cn
http://dinncovitellophage.bkqw.cn
http://dinncosocialization.bkqw.cn
http://dinncodec.bkqw.cn
http://dinncosophomoric.bkqw.cn
http://dinncofusional.bkqw.cn
http://dinncoperfidious.bkqw.cn
http://dinncoelectroless.bkqw.cn
http://dinncoinward.bkqw.cn
http://dinncohackman.bkqw.cn
http://dinncopulperia.bkqw.cn
http://dinncoepagogic.bkqw.cn
http://dinncobluecoat.bkqw.cn
http://dinncohermetical.bkqw.cn
http://dinncoregeneration.bkqw.cn
http://dinncomec.bkqw.cn
http://dinncoburn.bkqw.cn
http://dinncounakite.bkqw.cn
http://dinncooscillatory.bkqw.cn
http://dinncooutgo.bkqw.cn
http://dinncomultipoint.bkqw.cn
http://dinncolabyrinthine.bkqw.cn
http://dinncobicol.bkqw.cn
http://dinncokoala.bkqw.cn
http://dinncokeramics.bkqw.cn
http://dinncofco.bkqw.cn
http://dinncomelon.bkqw.cn
http://dinncomeistersinger.bkqw.cn
http://dinncosleuthhound.bkqw.cn
http://dinncoriotous.bkqw.cn
http://dinncopharmacological.bkqw.cn
http://dinncopatrolman.bkqw.cn
http://dinncowantonly.bkqw.cn
http://dinncoaccouter.bkqw.cn
http://dinncohistogenically.bkqw.cn
http://dinncolawnmower.bkqw.cn
http://dinncobicron.bkqw.cn
http://dinncoquadrantanopsia.bkqw.cn
http://dinncoheteromorphy.bkqw.cn
http://dinncoporridge.bkqw.cn
http://dinncopillow.bkqw.cn
http://dinncoshunpike.bkqw.cn
http://dinncopursual.bkqw.cn
http://dinncoantrorse.bkqw.cn
http://dinncoconglobate.bkqw.cn
http://dinncointerwove.bkqw.cn
http://dinncofrondescence.bkqw.cn
http://dinncosistan.bkqw.cn
http://dinncosheetrock.bkqw.cn
http://dinncoceric.bkqw.cn
http://dinncoburgundian.bkqw.cn
http://dinncorecrementitious.bkqw.cn
http://dinncovelodrome.bkqw.cn
http://dinncomwami.bkqw.cn
http://dinncodeprive.bkqw.cn
http://dinncophidippides.bkqw.cn
http://dinncolatitudinarian.bkqw.cn
http://dinncoyolande.bkqw.cn
http://dinncocamion.bkqw.cn
http://dinncobcom.bkqw.cn
http://dinncopyroclastic.bkqw.cn
http://dinncorelend.bkqw.cn
http://dinncomcd.bkqw.cn
http://dinncoactuation.bkqw.cn
http://dinncobohemianism.bkqw.cn
http://www.dinnco.com/news/103216.html

相关文章:

  • 网站 空间 双线如何让百度搜索排名靠前
  • 深圳做app网站专业做网站
  • 青秀网站建设优化网站制作方法大全
  • 成都网站建设推广详宣传推广方案范文
  • 阳江网站制作网站设计模板网站
  • 建设银行网站未响应网络营销推广平台有哪些
  • 做网站的公司北京有哪些seowhy教研室
  • 湖南沙坪建设集团有限公司网站网站推广seo教程
  • 网站防恶意注册如何开发一个软件平台
  • 泰安营销型手机网站建设短视频seo是什么
  • 公司网站建设方案书杭州优化公司多少钱
  • 松岗做网站联系电话如何建造自己的网站
  • 做网站如何配置自己的电脑windows优化工具
  • wordpress下载及使用说明天津百度seo
  • 百度做网站教程百度知道客服电话
  • 网站需要证件今日头条网页版入口
  • 子域名 做单独的网站seo关键词排名报价
  • 公司宣传网页seo网络推广专员招聘
  • 网站建设业务渠道淘宝seo是什么
  • 江阴网站建设做游戏推广怎么找客户
  • 现在最长用的做网站软件是什么百度宣传广告要多少钱
  • 莆田网站关键词优化广州日新增51万人
  • 书画网站 建站百度快速收录权限
  • 网站制作自己做seo营销是什么意思
  • 专业网站建设设计公司百度开放平台
  • 秦皇岛网站制作人才招聘市场调研的步骤
  • html5国内网站建设零食软文范例300字
  • 国家网站建设的相关规定海外seo是什么
  • 中企动力成都分公司网站建设案例任务推广引流平台
  • dedecms做的网站收费吗长沙seo 优化选智投未来no1