最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

linux的C编程学习笔记

来源:动视网 责编:小OO 时间:2025-10-06 06:07:14
文档

linux的C编程学习笔记

Linux的C编程和windows下的C编程其实是差不多的,只不过linux下使用的是gcc编译器和调试器。gdbGcc编译器:新建目录:mkdirc控制保存位置::w/root/c/a.cC文件编译:gcc源文件.c-o目标文件.outC++:g++源文件.C-o目标文件.out(C++的主函数要有返回值)。如果源代码的文件扩展名不是默认的扩展名,gcc就无法编译这个程序。可以用-x选择来设置程序的语言Eg:cpa.ca.ugcc-x'c'a.u编译过程的控制:gcc-E-oa.cxxa.c
推荐度:
导读Linux的C编程和windows下的C编程其实是差不多的,只不过linux下使用的是gcc编译器和调试器。gdbGcc编译器:新建目录:mkdirc控制保存位置::w/root/c/a.cC文件编译:gcc源文件.c-o目标文件.outC++:g++源文件.C-o目标文件.out(C++的主函数要有返回值)。如果源代码的文件扩展名不是默认的扩展名,gcc就无法编译这个程序。可以用-x选择来设置程序的语言Eg:cpa.ca.ugcc-x'c'a.u编译过程的控制:gcc-E-oa.cxxa.c
Linux的C编程和windows下的C编程其实是差不多的,只不过linux下使用的是gcc编译器和调试器。

gdbGcc编译器:

新建目录:mkdir c 

控制保存位置::w /root/c/a.c 

C文件编译:gcc 源文件.c -o目标文件.out

C++:g++ 源文件.C -o 目标文件.out(C++的主函数要有返回值)。

如果源代码的文件扩展名不是默认的扩展名,gcc 就

无法编译这个程序。可以用-x 选择来设置程序的语言

Eg:cp a.c a.u

          gcc -x 'c' a.u 

编译过程的控制:

gcc -E -o a.cxx a.c        完成程序的预处理工作而不进行其他的编译工作

gcc -S -o a.s a.c         生成相应的汇编程序文件,而不继续执行后面的

编译

gcc -c -o a.o  a.c        只生成目录代码而不生成可执行程序

gcc a.o -o aa.out        链接生成可执行文件

修改文件权限:chmod +x a.out     把aa.out属性改为可执行

执行程序:./aa.out       执行可执行文件aa.out

 

Gdb 调试程序

      调试时,主要使用gdb 进行下面5 个方面的操作:

启动程序、 设置断点、 查看信息、 分步运行、 改变环境

1.gcc -g -o a.debug a.c         在编译程序中加入供 gdb 使用的调试信息

(为了使用gdb 进行程序调试,需要在编译程序中加入供     gdb 使用的调试信息。方法是在编译程序时使用一个-g 参     数。这时,编译程序a.c,生成一个 a.bedug 的可执行程序。     这个可执行程序中加入了供调试

所用的信息)

2.使用gdb 调试一个程序之前,需要加载这个程序。加载程序的命令是 file 。在(gdb)    提示符后面输入下面的命令加载程序a.debug。

file a.debug

3.用gcc 命令编译程序加入了-g 命令以后,编译后的a.debug程序中加入了断点。可以    用list命令显示程序的源代码和断点。

list 1 

这时,gdb 会显示第一个断点以前的代码。按“Enter”键,显示下一个断点以前的代    码

4.在程序中加入断点:(如果自动设置的断点不能满足调试要求,可以用 break命令增加    程序的断点。)

break 6         在程序的第6 行增加一个断点

5.info breakpoint       查看程序中设置的断点

6.运行程序: 

输入“run”命令    run 命令可以使这个程序以调试的模式运行

输入“next ”命令     在下一行停下

输入“continue ”命令      在下一个断点的位置停下

  注:step命令与next 命令的作用相似,对程序实现单步运行。不同之处是,在遇上      函数调用时,step 函数可以进行到函数内部。而next 函数只是一步完成函数的调用。

7.变量的查看:

print 命令可以在程序的运行中查看一个变量的值。(执行到断点后输入print 变量    名)

8.其他gdb 常用命令:

 backtrace :显示程序中的当前位置和表示如何到达当前位置的栈跟踪                (同义词:where)。 

 breakpoint:在程序中设置一个断点。 

 cd :改变当前工作目录。 

 clear :删除刚才停止处的断点。

 continue :从断点开始继续执行。 

 delete:删除一个断点或监测点,也可与其他命令一起使用。 

 display :程序停止时显示变量和表达式。 

 down:下移栈帧,使得另一个函数成为当前函数。 

 frame:选择下一条continue 命令的帧。 

 info :显示与该程序有关的各种信息。 

 info break:显示当前断点清单,包括到达断点处的次数等。 

 info files :显示被调试文件的详细信息。 

 info func :显示所有的函数名称。 

 info local :显示当函数中的局部变量信息。 

 info prog :显示被调试程序的执行状态。 

 info var:显示所有的全局和静态变量名称。  

 jump:在源程序中的另一点开始运行。 

 kill:异常终止在gdb  控制下运行的程序。 

 list:列出相应于正在执行的程序的源文件内容。 

 next :执行下一个源程序行,从而执行其整体中的一个函数。 

 print :显示变量或表达式的值。 

 pwd :显示当前工作目录。 

 pype :显示一个数据结构(如一个结构或C++ 类)的内容。 

 quit :退出gdb 。 

 reverse-search :在源文件中反向搜索正规表达式。 

 run :执行该程序。 

 search :在源文件中搜索正规表达式。 

 set variable :给变量赋值。 

 signal :将一个信号发送到正在运行的进程。 

 step :执行下一个源程序行,必要时进入下一个函数。 

 undisplay display:命令的反命令,不要显示表达式。 

 until :结束当前循环。 

 up:上移栈帧,使另一函数成为当前函数。 

 watch:在程序中设置一个监测点(即数据断点)。 

 whatis:显示变量或函数类型。 

 

文档

linux的C编程学习笔记

Linux的C编程和windows下的C编程其实是差不多的,只不过linux下使用的是gcc编译器和调试器。gdbGcc编译器:新建目录:mkdirc控制保存位置::w/root/c/a.cC文件编译:gcc源文件.c-o目标文件.outC++:g++源文件.C-o目标文件.out(C++的主函数要有返回值)。如果源代码的文件扩展名不是默认的扩展名,gcc就无法编译这个程序。可以用-x选择来设置程序的语言Eg:cpa.ca.ugcc-x'c'a.u编译过程的控制:gcc-E-oa.cxxa.c
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top