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

适合网站开发的框架昆明网红

适合网站开发的框架,昆明网红,长沙有哪些网站建设公司,百度推广网络推广微信网站什么是makefile Makefile 文件描述了 Linux 系统下 C/C 工程的编译规则#xff0c;它用来自动化编译 C/C 项目。一旦写编写好 Makefile 文件#xff0c;只需要一个 make 命令#xff0c;整个工程就开始自动编译#xff0c;不再需要手动执行 GCC 命令。一个中大型 C/C 工程…什么是makefile Makefile 文件描述了 Linux 系统下 C/C 工程的编译规则它用来自动化编译 C/C 项目。一旦写编写好 Makefile 文件只需要一个 make 命令整个工程就开始自动编译不再需要手动执行 GCC 命令。一个中大型 C/C 工程的源文件有成百上千个它们按照功能、模块、类型分别放在不同的目录中Makefile 文件定义了一系列规则指明了源文件的编译顺序、依赖关系、是否需要重新编译等。 Makefile 可以简单的认为是一个工程文件的编译规则描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译那些文件不需要编译那些文件需要先编译那些文件需要后编译那些文件需要重建等等。编译整个工程需要涉及到的在 Makefile 中都可以进行描述。换句话说Makefile 可以使得我们的项目工程的编译变得自动化不需要每次都手动输入一堆源文件和参数。 make 和 makefile 的关系 make是一个命令工具,它解释Makefile中的指令。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。 Cmake 是什么 CMake是一个跨平台的编译(Build)工具,可以用简单的语句来描述所有平台的编译过程。 CMake能够输出各种各样的makefile或者project文件能测试编译器所支持的C特性,类似UNIX下的automake。 Cmake与CMakeLists的关系 cmake是一个命令工具,可用来生成makefile。但也要根据CMakelists.txt中的内容来生成,CMakeLists.txt就是写给cmake的规则她. 注意 make是一个命令工具,Makefile是一个文件,make执行的时候侯,去读取Makefile文件中的规则,重点是makefile得自己写。 cmake是一个命令工具,CMakelists.txt是一个文件,Cmake执行的时候,去读取CMakelists.txt文件中的规则,重点是CMakelists.txt得自自己写。 hello world 开始 Makefile基本语法 目标:依赖 Tab 命令 目标:一般是指要编译的目标,也可以是一个动作 依赖:指执行当前目标所要依赖的先项,包括其它目标,某个具体文件或库等 一个目标可以有多个依赖 命令:该目标下要执行的具体命令,可以没有,也可以有多条 多条时,每条命令一行 添加依赖 添加多条语句 make clean: 添加 执行时不会输出 clean:rm -rf a.out可以自己添加注释输出 clean:rm -rf a.outecho rm -rf a.out okmake常用选项 make [-f file][options][target] Make默认在当前目录中寻找GUNmakefile,makefile,Makefile的文件作为make的输入文件 -f 可以指定除上述文件名之外的文件作为输入文件 -v 显示版本号 -n 只输出命令,但并不执行,一般用来测试 -s 只执行命令,但不显示具体命令,此处可在命令中用符抑制命令输出 -w 显示执行前执行后的路径 -Cdir 指定makefile所在的目录 没有指定目标时,默认使用第一个目标 如果指定,则执行对应的命令 编译流程 创建文件 make./calculate 优化 好处 第一次编译两小时 第二次编译五分钟 # calculate: clean # gcc main.cpp add.cpp mult.cpp div.cpp sub.cpp -o calculate# clean: # rm -rf calculatecalculate:clean add.o sub.o mult.o div.ogcc add.o sub.o mult.o div.o main.cpp -o calculateadd.o:add.cpp gcc -c add.cpp -o add.osub.o:sub.cpp gcc -c sub.cpp -o sub.omult.o:mult.cppgcc -c mult.cpp -o mult.odiv.o:div.cpp gcc -c div.cpp -o div.oclean:rm -rf calculategcc main.cpp直接从源代码到目标可执行文件了 把过程拆分 预处理 gcc -E main.cppmain.ii 编译 gcc -S main.ii得到名为main.s的汇编文件 汇编 gcc -c main.s得到名为main.o(.obj)的二进制文件 链接 gcc main.o得到名为a.out 的可执行文件 Makefile中的变量 系统变量 $* 不包括扩展名的目标文件名称 $ 所有的依赖文件,以空格分隔 $表示规则中的第一个条件 $?所有时间戳比目标文件晚的依赖文件,以空格分隔 $目标文件的完整名称 $^ 所有不重复的依赖文件,以空格分隔 $%如果目标是归档成员,则该变量表示目标的归档成员名称 系统常量(make -p可查看) AS 汇编程序的名称,默认为 as CC C编译器名称 默认cc CPP C预编译器名称 默认cc -E CXX C编译器名称 默认g RM 文件删除程序别名 默认rm-f show:echo $(AS)echo $(CC)echo $(CPP)echo $(CXX)echo $(RM)自定义变量 自定义 参数 TARGET calculate 使用 $(TARGET) OBJ add.o sub.o mult.o div.o calc.o TARGET calculate$(TARGET):$(OBJ)gcc $(OBJ) -o $(TARGET)add.o:add.cpp gcc -c add.cpp -o add.osub.o:sub.cpp gcc -c sub.cpp -o sub.omult.o:mult.cppgcc -c mult.cpp -o mult.odiv.o:div.cpp gcc -c div.cpp -o div.ocalc.o:calc.cpp gcc -c calc.cpp -o calc.oclean:rm -rf calculate *.o变量替换 OBJ add.o sub.o mult.o div.o calc.o TARGET calculate$(TARGET):$(OBJ)$(CXX) $^ -o $add.o:add.cpp $(CXX) -c $^ -o $sub.o:sub.cpp $(CXX) -c $^ -o $mult.o:mult.cpp$(CXX) -c $^ -o $div.o:div.cpp $(CXX) -c $^ -o $calc.o:calc.cpp $(CXX) -c $^ -o $clean:$(RM) $(TARGET) *.oshow:echo $(AS)echo $(CC)echo $(CPP)echo $(CXX)echo $(RM) 伪目标和模式匹配 伪目标.PHONY:clean 声明目标为伪目标之后,mokefile将不会判断目标是否存在或该目标是否需要更新 执行make clean 会删除文件 这时在当前目录下创建一个名为clean的文件 再次执行make clean 提示 make: ‘clean’ is up to date. 解决方法 添加为伪目标 .PHONY:clean 按照OBJ顺序来的 %.0:%.cpp .0依赖于对应的.cpp wildcard $(wildcard ./*.cpp)获取当前目录下所有的.cpp文件 patsubst $(patsubst %.cpp,%.o,/*cpp)将对应的cpp文件名替换成.0文件名 使用 # OBJ add.o sub.o mult.o div.o calc.o OBJ $(patsubst %.cpp,%.o,$(wildcard ./*.cpp))报错 问题 make: show: No such file or directory make: *** [Makefile:37: show] Error 127 解决 使用echo 运行流程 保证目标是用最新的依赖生成的 第一次全完编译,后面只编译最新的代码(部份编译) 学习参考 https://www.bilibili.com/video/BV1Xt4y1h7rH/?p5spm_id_frompageDrivervd_sourcee70917aa6392827d1ccc8d85e19e8375
http://www.hkea.cn/news/14389121/

相关文章:

  • 手机网站开发软件下载数据来源于网站怎么做参考文献
  • 专业做包包的网站好做外贸推广的网站
  • 公司手机网站济南seo快速霸屏
  • 设计公司网站设计方案生活中有创意的产品设计
  • 商务网站建设需要备案吗安徽省城乡建设网站
  • 免费传奇网站免费传奇济南的互联网公司
  • 网站域名的根目录在哪里网站如何申请
  • ui设计师作品集网站手机网站开发企业
  • 张家港网站开发联通腾讯合作
  • 太原建站模板系统崇义做网站
  • 宁波做亚马逊网站宿州网络科技有限公司
  • 常州高端模板建站代理品牌
  • 网站建设亿玛酷专注西安优化排名推广
  • 赣州有做网站推广的公司吗网页空间网站
  • 哪种语言网站建设做机械有什么兼职网站
  • 河北企业建站网站界面设计 考虑因素
  • html写手机网站怎样注册网店开网店
  • 东莞网站建设方案外包邢台市是几线城市
  • 网站建设商业阶段仿5173网站
  • DW做的网站都能打开吗网站如何宣传推广
  • 网站建设流程时间表阜阳网站开发招聘
  • 网站建设困难吗北京公司网站怎么制作
  • 纯html5网站营销型网站维护费用
  • 毕业设计资源网站做设计找素材都有什么网站
  • 电子商务网站建设规划心得做百度移动端网站优化
  • 微网站 demo网站开发现在用什么
  • 介绍学校网站怎么做没有下载功能的网页视频怎么下载
  • 有没有做那事的网站德州网站怎样建设
  • 新闻自动采集网站源码网站的域名和空间
  • 网站开发时app打开很慢曲靖市住房和城乡建设局网站