做信息网站怎么样找网页设计公司

张小明 2026/1/13 0:38:44
做信息网站怎么样,找网页设计公司,张家口互联网软件园,昌平网站建设公司#x1f3ac; 个人主页#xff1a;Vect个人主页#x1f3ac; GitHub#xff1a;Vect的代码仓库#x1f525; 个人专栏: 《数据结构与算法》《C学习之旅》《Linux》⛺️Per aspera ad astra. 文章目录Makefile0. 简单代码演示1. Makefile结构及规则变量定义部分默认目标部分… 个人主页Vect个人主页 GitHubVect的代码仓库 个人专栏: 《数据结构与算法》《C学习之旅》《Linux》⛺️Per aspera ad astra.文章目录Makefile0. 简单代码演示1. Makefile结构及规则变量定义部分默认目标部分编译目标部分清理目标部分2. 过程推导目标文件.o和依赖关系规则推导过程时间戳伪目标gdb调试gdb使用须知gdb命令汇总vim的使用1. 命令模式操作2. 底行模式操作3. 视图模式和替换模式4. 总结Makefile0. 简单代码演示// add.h#pragmaonceintadd(inta,intb);// add.cpp#includeadd.hintadd(inta,intb){returnab;}// main.cpp#includeiostream#includeadd.hintmain(){std::coutadd(1,2)std::endl;return0;}1. Makefile结构及规则这里先提前有个认知Makefile是文件make是指令先来看代码然后解读# 变量定义部分SRCmain.cpp add.cpp OBJ$(SRC:.cpp.o)BINmyapp# 默认目标$(BIN):$(OBJ)g -o$$^# 编译目标%.o: %.cpp g -c $-o$# 清理目标.PHONY: clean clean:rm-f$(OBJ)$(BIN)变量定义部分SRC main.cpp add.cpp作用定义源文件变量包含所有.cpp的源文件解释SRC是一个包含需要编译的源文件的列表OBJ $(SRC:.cpp.o)作用通过模式替换将SRC中的.cpp全部转换成.o文件解释$(VAR)用来引用一个变量的值$(SRC:.cpp.o)利用替换模式得到OBJ main.o add.oBIN myapp作用定义最终生成的目标文件名最后的可执行文件默认目标部分$(BIN):$(OBJ)作用表示目标$(BIN)依赖于$(OBJ)中的main.o add.og -o $ $^作用使用g将.o文件链接成最终可执行文件myapp解释$代表当前规则中的目标文件这里是$(BIN)$^代表所有的依赖文件去除重复的这里是$(OBJ)编译目标部分%.o: %.cpp作用表示一条通用规则告诉make如何将.cpp文件编译成.o文件解释%是通配符代表一个任意的字符序列这里表示会匹配所有的.cpp文件将它们全部编译为对应的.o文件g -c -o $作用使用g将.cpp文件编译成.o文件解释$代表当前规则中的第一个依赖文件在这里就是.cpp文件$表示当前规则中的目标文件在这里是.o文件清理目标部分.PHONY: clean作用声明clean是一个伪目标而不是文件名解释make会认为clean是一个任务而不是文件因此即使当前目录下存在名为clean的文件make也会执行clean规则的命令clean: rm -f $(OBJ) $(BIN)作用clean目标的命令部分删除所有生成的目标文件和最终的可执行文件。2. 过程推导目标文件.o和依赖关系main.o依赖于main.cppadd.o依赖于add.cpp在Makefile中$OBJ是要生成的目标文件它的生成依赖于.cpp文件规则推导过程make会从默认目标myapp开始通过依赖关系逐步推导出需要做的工作make看到myappmyapp的形成依赖于main.o和add.omake会从main.o和add.o开始推导生成main.o而main.o的生成又依赖于main.cpp所以make会执行g -c main.cpp -o main.o生成add.o同理add.o的生成依赖于add.cpp所以make会执行g -c add.cpp -o add.o链接成myapp当生成了main.o和add.omake会执行g -o mayapp main.o add.o推导是一个出栈入栈的过程出栈make开始时看到myapp出栈myapp处理它的依赖main.o和add.o**入栈**当main.o和add.o处理完后它们的目标文件会入栈然后make执行生成myapp的命令我们梳理清楚依赖链目标直接依赖构建规则myappmain.oadd.og -o myapp main.o add.omain.omain.cppg -c main.cpp -o main.oadd.oadd.cppg -c add.cpp -o add.oclean伪目标rm -f main.o add.o myapp时间戳make在做依赖关系推导的时候会用时间戳来决定哪些目标需要重新构建时间戳的作用make会比较每个目标文件和它的依赖文件的时间戳如果依赖文件比目标文件新make会重新构建目标文件如果目标文件存在且没有被更新make会跳过编译过程[vectVM-0-11-centos make_file]$statmain.cpp File: ‘main.cpp’ Size:102Blocks:8IO Block:4096regularfileDevice: fd01h/64769d Inode:1051720Links:1Access:(0664/-rw-rw-r--)Uid:(1002/ vect)Gid:(1002/ vect)Access:2025-12-1420:12:03.883557588 0800 Modify:2025-12-1420:12:01.955499062 0800 Change:2025-12-1420:12:01.955499062 0800 Birth: -看一下三种时间Acesstime访问时间文件内容被读取/访问的时间Modifytime修改时间文件时间内容被修改的时间文件大小、内容变化Changetime状态改变时间文件**元数据属性**改变的时间文件属性过程演示第一次运行makemake的行为[vectVM-0-11-centos make_file]$makeg -c main.cpp -o main.o g -c add.cpp -o add.o g -o myapp main.o add.o此时目标文件和可执行文件都生成了时间戳被记录修改源文件并运行make假设修改了add.cpp文件中的代码例如intadd(inta,intb){returna*b;// 修改了加法为乘法}现在make会根据文件时间戳决定是否重新编译main.o时间戳未变化main.cpp不重新编译add.o文件的时间戳比add.cpp新make会发现add.o的依赖文件add.cpp发生变化运行指令得到[vectVM-0-11-centos make_file]$makeg -c add.cpp -o add.o g -o myapp main.o add.o不做任何修改直接运行make[vectVM-0-11-centos make_file]$makemake: myapp is up to date.总结目标文件不存在如果目标文件.o或依赖文件.cpp不存在make会强制编译并生成目标文件。依赖文件更新如果依赖文件的时间戳比目标文件更新make会重新编译依赖文件并更新目标文件。无更新时跳过编译如果目标文件和依赖文件的时间戳都没有变化make会跳过编译过程避免重复工作。伪目标伪目标没有对应文件的目标文件用来执行命令而不关心文件的存在伪目标不会检查时间戳每次执行都会运行相关指令.PHONY: clean clean:rm-f$(OBJ)$(BIN).PHONY告诉makeclean是伪目标即使当前目录下有一个clean文件make也不会认为它是一个文件而是会执行rm命令gdb调试gdb使用须知程序发布方式debug版本程序本身会被加入更多调试信息便于调试release版本不添加任何调试信息不可调试在Linux下gcc/g默认生成的可执行程序是release版本若想生成debug版本就需要加上-g选项对同一代码分贝生成release版本和debug版本的可执行程序可以看到debug版本要更大原因是debug版本包含了更多的调试信息gdb命令汇总【进入gdb】gdb 二进制文件名【退出】ctrld或quit调试命令【常见命令】list/l列出源代码从上次位置开始每次列10行list/l 函数名列出指定函数的源代码list/l 文件名:行号列出指定文件的源代码run/r从程序开始连续执行next/n单步执行不进入函数内部相当于逐过程F10step/s单步执行进入函数内部相当于逐语句F11break/b 文件名:行号指定行号打断点b 10b test.c:10info break/b查看当前所有断点信息这里显示断点编号和断点类型以及其他信息finish执行到当前函数返回然后停止print/p 表达式打印表达式的值p 变量打印指定变量的值set var 变量值修改变量的值continue/c从当前位置开始连续执行程序delete/d breakpoints删除所有断点delete/d breakpoints n删除序号为n的断点disable breakpoints禁用所有断点enable breakpoints 启用所有断点info/i breakpoints查看当前设置的断点列表display 变量名跟踪显示指定变量的值undisplay 编号取消对指定编号的变量的跟踪显示until x执行到指定行号backtrace/bc查看当前执行栈的各级函数调用及参数info/i locals查看当前栈帧的局部变量值vim的使用vim是一种多模式编辑器总共有12种模式本文只详细讲解三种常见模式命令模式插入模式第行模式**命令模式**控制光标的移动进行字符或行的删除移动复制某区域内容**插入模式**文本编辑底行模式文本保存、退出、文件替换、查找文本内容、执行命令替换模式文本替换视图模式1. 命令模式操作进入vimvim file如果文件不存在就会自动创建并进入vim编辑器页面默认进入命令模式命令模式-插入模式输入a光标后移一位进入编辑输入o光标另起一行到行首进入编辑输入i光标位置进入编辑命令模式-底行模式shift;就是输入:退出vim并保存文件从命令模式转到底行模式w保存当前文件wq保存并退出q!不保存强制退出复制注意n代表数字nyy光标所在行开始复制n行np从光标所在行下一行行首开始粘贴n次u撤销上一次操作ctrlr取消撤销移动光标shiftg即G定位到文本末尾gg定位到文本开头nshiftg定位到第n行h j k l← ↓ ↑ →移动光标$定位到本行末尾^定位到本行开头w光标跳到下一个字的开头b光标跳到上一个字的开头删除nx光标所在位置开始向后删除n个字符nX光标所在位置开始向前删除n个字符dd删除光标所在行替换nr输入字符从光标所在位置开始用n个输入字符替换原字符更改shift~光标所在位置大小写替换2. 底行模式操作进入底行模式之前先按esc键确定在命令模式下再按:进入第行模式列出行号set nu输入set nu会在文件中每一行前面列出行号set nonu取消行号查找/关键字先按/再输入想查找的内容按n会跳转到下一个匹配的?关键字先按/再输入想查找的内容按n会跳转到上一个匹配的保存文件w离开vimqq3. 视图模式和替换模式从命令模式按shiftr会进入替换模式此时就可以进行文本、字符替换操作从命令模式按ctrlv会进入视图模式hjkl会进行区域选择按I进入插入模式然后按输入//后立马按ESC回到命令模式就可以实现批量注释4. 总结
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

如何在招聘网站上选个好公司做销售苏州工业园区房价

ChatData是一个基于RAG(检索增强生成)技术的智能对话系统,让你能够与600万在线百科页面和200万arXiv论文进行自然对话。无论你是数据分析师、研究人员还是技术爱好者,这个项目都能帮你快速构建强大的知识问答应用。 【免费下载链接…

张小明 2026/1/7 9:59:13 网站建设

基于开源框架的网站开发外贸客户管理软件排名

SSH端口映射访问远程Miniconda Jupyter服务 在数据科学和AI开发的日常工作中,一个常见的场景是:你手头有一台性能普通的笔记本电脑,却需要运行基于PyTorch或TensorFlow的大规模模型训练任务。本地资源捉襟见肘,自然想到借助远程服…

张小明 2026/1/7 9:59:10 网站建设

电子商务公司开发网站wordpress重定向自定义

YOLO模型镜像支持多GPU分布式训练,提速10倍以上 在智能制造工厂的质检线上,一台工业相机每秒捕捉上百帧图像,要求系统在毫秒级内识别出微米级缺陷。面对这种高吞吐、低延迟的挑战,传统目标检测方案往往力不从心——要么精度不够漏…

张小明 2026/1/10 5:05:07 网站建设

网站案例模版软件公司网站模板下载

鸣潮玩家必看:5大自动化功能让游戏效率提升300% 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸上锁合成 自动肉鸽 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 还在为重复的刷…

张小明 2026/1/7 11:25:40 网站建设

做加盟正规网站短视频seo系统

一、 传输层与端口号传输层传输层的核心任务是负责数据能够从发送端传输到接收端 。为了方便理解,在学习传输层协议时也可以简单的认为传输层协议是将数据直接发送到了网络当中。而为了区分一台主机上运行的不同应用程序,我们需要引入端口号的概念。再谈…

张小明 2026/1/7 11:25:38 网站建设

软件网站怎么做的it行业公司排名

从零开始玩转电机控制:STM32驱动L298N实战全解析你有没有试过让一个小车听话地前进、后退、加速、转弯?这背后其实藏着一个关键问题——单片机的IO口根本“推不动”电机。别急,今天我们就用一块普及型STM32和经典的L298N模块,手把…

张小明 2026/1/9 22:54:03 网站建设