东台网站设计开源手机网站系统

东台网站设计,开源手机网站系统,杂志社网站建设方案书,asp网站301gcc编译器 gcc [options] [filenames] 其中#xff0c;options是编译器所需要的选项参数#xff0c;filenames是文件名。 gcc编译过程 C语言编译过程一般可以分为预处理、编译、汇编、链接四个步骤。 1.预处理阶段 预处理阶段主要处理宏定义和include#xff0c;并进行语… gcc编译器 gcc [options] [filenames] 其中options是编译器所需要的选项参数filenames是文件名。 gcc编译过程 C语言编译过程一般可以分为预处理、编译、汇编、链接四个步骤。 1.预处理阶段 预处理阶段主要处理宏定义和include并进行语法检查最终生成预处理文件。 gcc 通过-E参数调用预处理程序 cpp完成预处理工作。- o 参数用于指定输出文件。 gcc -E -o zp.i zp.c 2.编译阶段 在编译阶段编译器将对源代码进行词法分析、语法分析、代码优化等操作最后生成汇编代码。这是整个过程中最重要的一步因此也常把整个过程称为编译。 通过 - S 参数可使gcc在完成编译后停止生成后缀 . s 的汇编文件。 gcc -S -o zp.s zp.c 3.汇编阶段 汇编阶段使用汇编器对汇编代码进行处理生成机器语言代码并保存在后缀为.o的目标文件中。当程序由多个代码文件构成时每个文件都要先完成汇编工作在生成.o目标文件后才能进入下一步链接工作。目标文件属于最终程序的某一部分只是在链接之前还不能执行。 gcc 通过 -c 参数调用 as完成汇编工作。 gcc -c -o zp.o zp.c 4.链接阶段 链接阶段将所有的.o文件和需要的库文件链接成一个可执行文件。经过汇编的机器代码还不能直接运行。为了使操作系统能够正确加载可执行文件文件中必须包含固定格式的信息头当其与系统提供的启动代码链接起来时文件才能正常运行。这些都是由链接器来完成的。 gcc -o zp zp.c gcc通过链接程序ld完成链接工作。 链接阶段结束后将生成可执行文件通过一下方式可运行该可执行程序。 ./zp 完整过程演示 gcc -E hello.c -o hello.i#gcc 预处理 ls #确认预处理后生成的源代码文件hello.igcc -S hello.i -o hello.s #gcc编译 ls #确认已生成的汇编文件hello.s gcc -c hello.s -o hello.o #gcc编译 ls #确认已生成的二进制文件hello.ogcc hello.o -o hello #gcc链接 ls file hello #查看生成文件的信息 ./hello #执行该程序简单的gcc用法 [qianglocalhost work]$ gcc hello.c #gcc自动生成一个a.out可执行文件 [qianglocalhost work]$ ls a.out hello.c [qianglocalhost work]$ ./a.out #执行a.out Hello gcc! [qianglocalhost work]$ [qianglocalhost work]$ gcc hello.c -o hello [qianglocalhost work]$ ls hello hello.c [qianglocalhost work]$ ./hello Hello gcc!编译包含多个源文件的项目 1.编写源代码 1hello.h文件 #ifndef _HELLO_H #define _HELLO_H void hello(); #endif2hello.c文件 #include hello.h #include stdio.h void hello(){printf(Hello,Im zp!\n); }3helloMain.c文件 #include hello.h void main() { Hello(); } 2.编译过程 gcc hello.c hello.h helloMain.c -o hello #编译生成可执行文件 gdb调试 1.编写C语言源文件 #include stdio.h int main() {int i,sum0;for(i0;i50;i){sumi;}printf(the sum is %d,sum);return 0; } 2.使用gcc的-g选项编译文件 [qianglocalhost code]$ gcc -g testSum.c -o testSum [qianglocalhost code]$ ls testSum testSum.c3.使用gdb启动此文件调试 gdb testSum gdb调试工具将gdb作为提示符输入相应的gdb内部命令即可进行调试。输入help命令可获取帮助信息输入quit命令可以退出gdb。  [qianglocalhost code]$ gdb testSum GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7 Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type show copying and show warranty for details. This GDB was configured as x86_64-redhat-linux-gnu. For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /home/qiang/code/testSum...done. (gdb) 4.gdb常见内部命令的使用 1使用  list 或 l命令查看程序的源代码。 list后面可以接行号此时将显示当前文件以”行号“为中心的前后10行代码。 2 输入run 命令运行此文件 3使用break 7 命令在程序的第7行设置一个断点 4使用run命令可查看设置断点后程序的运行情况。程序运行到断点处自动暂停 5使用watch sum命令给sum变量设置一个监视点。使用 p sum 命令打印 sum 变量的值。 6使用step 命令或者next 命令可以单步执行程序。单步执行数次后使用p sum命令观察sum值的变化情况。 (gdb) step 5 for(i0;i50;i) (gdb) nextBreakpoint 1, main () at testSum.c:7 7 sumi; (gdb) p sum $2 0 (gdb) next Hardware watchpoint 2: sumOld value 0 New value 1 main () at testSum.c:5 5 for(i0;i50;i) (gdb) p sum $3 1 (gdb) stepBreakpoint 1, main () at testSum.c:7 7 sumi; (gdb) p sum $4 1 (gdb) step Hardware watchpoint 2: sumOld value 1 New value 3 main () at testSum.c:5 5 for(i0;i50;i) (gdb) p sum $5 3 (gdb) 7使用info b 命令可以查看当前所有断点和观测点的信息 使用info b nn为断点编号可以查看单个断点的信息  8使用d n 命令可以删除指定编号的断点使用 d 命令可以删除所有断点。删除后再次使用info b命令查看断点的信息。 make编译 当源文件数量较多且具有复杂依赖时就需要使用make工具来帮助我们进行管理。 在Linux操作系统环境下使用GNU的make工具能够比较方便地构建一个属于自己的工程整个工程的编译只需要一个命令就可以完成编译链接。 在执行make命令时需要提供Makefile 文件make命令基于Makefile 文件实现了一种自动化的编译机制。make命令通过解释Makefile 文件中的规则来编译所需要的文件和链接目标文件进而实现自动维护编译工作。  1如果该工程还没有被编译过那么所有C文件都要编译并被链接。 2如果对该工程的某些C文件进行了修改那么make过程将只编译被修改的C文件并链接目标程序。 3如果这个工程的头文件被更改了那么需要编译引用了这几个头文件的C文件并链接目标程序。 Cpp学习笔记 ——4.make与Makefile - 知乎 (zhihu.com) 文件备份与压缩 快速上手Linux核心命令九文件备份与压缩 - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高明网站制作凡客软件

Android 实现无预览拍照功能 1.权限 需要相机、读写文件、悬浮窗权限 申请相机、读写文件 manifest.xml <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE…

长沙网络建站合肥网站制作建设公司

引言&#xff1a; 在当今数据驱动的时代&#xff0c;网络上蕴藏着无尽的信息宝藏&#xff0c;而爬虫技术则是探索和利用这些宝藏的重要工具。爬虫&#xff0c;简单来说&#xff0c;就是一种自动化程序&#xff0c;它能够模拟人类浏览网页的行为&#xff0c;从中提取所需数据。…

本地网站建设应届生在淮北招的网站建设类型岗位

为什么要乘以2&#xff0c;是为了让DICE的值域在0和1之间 优化&#xff1a;两种LOSS相加 Focus loss:

做网站的注意什么三亚制作网站

Docker自建文件快递柜系统。 软件特色&#xff1a; 轻量简洁&#xff1a;FastapiSqlite3Vue2ElementUI 轻松上传&#xff1a;复制粘贴&#xff0c;拖拽选择 多种类型&#xff1a;文本&#xff0c;文件 防止爆破&#xff1a;错误次数限制 防止滥用&#xff1a;IP限制上传次数…

网站建设服务的具体条件网络彩票建立网站

论文地址&#xff1a;Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks 代码地址&#xff1a;https://github.com/jierunchen/fasternet 该论文主要提出了PConv&#xff0c;通过优化FLOPS提出了快速推理模型FasterNet。 在设计神经网络结构的时候&#xff…

网站服务器的选择昆明好seo怎么做

资源限制 内存限制&#xff1a;512.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 153是一个非常特殊的数&#xff0c;它等于它的每位数字的立方和&#xff0c;即1531*1*15*5*53*3*3。编程求所有满足这种条件…

长沙南站建站中国纪检监察报总编辑

定义 在JS中&#xff0c;arguments 是一个类数组对象&#xff0c;它包含了函数调用时传入的所有参数。 它允许我们在函数内部访问这些参数&#xff0c;即使他们没有被明确命名为函数的形参。 使用场景 arguments对象常用于处理可变数量的参数。 例如在不确定函数会接受多少个…

网站引导页psd网站建设如何算成本

在处理大量图片文件时&#xff0c;可能会遇到需要将文件格式扩展名进行转换的情况。比如&#xff0c;将图片文件从PNG格式转换为JPG格式。这不仅可以节省存储空间&#xff0c;还可以提高图片加载速度&#xff0c;特别是在网页设计中。本文详解如何将PNG图片批量转换为JPG格式的…