Linux下的gcc调试

本文介绍了在Linux环境下,如何使用gcc、makefile、cmake以及shell脚本来编译和管理C/C++项目。详细阐述了从手动编译到使用makefile自动化,再到cmake简化多源文件工程的编译过程,并最终通过shell脚本进一步简化操作,使得构建过程更为便捷。通过实例展示了标准目录结构下,如何编写CMakeLists.txt文件,以及如何通过cmake和make命令生成可执行文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言:

       Linux下的gcc编译本质是一个编译C语言程序的命令,通过键入命令,就可以把C源文件编译成可执行文件(xx.out)。在Windows下的软件往往都有IDE,只需要鼠标点击一下即可编译程序,但是个中原理却往往被忽视。在Linux系统下,当你拥有一个由多个源文件组成的工程时,通过键入命令的方式进行编译将是一个费时费力的事情。

       前一篇文章讲了在Linux下gcc编译的四个过程,makefile保存了怎样去编译链接程序的规则,当我们在命令行执行"make"时,便会按照makefile的规则去编译程序。不过大型工程编写makefile也是一件比较麻烦的事情,所以又有了cmake,通过创建CMakeLists.txt,按照其语法键入编译的规则,通过"cmake ./(或者cmake .)"或“camke ../(或cmake ../)"便可生成makefile文件。

      但整个过程还是免不了要在命令行键入“cmake”、“make”命令,为了再简单一点可以用shell写一个脚本,脚本里保存执行“cmake”、“make”等命令,最后只需要每次运行该脚本(xx.sh),就能够生成可执行文件。是不是简单很多了呢!

     接下来以一个我自己建立的简单工程,来测试我以上所述的方法。

2. 实例:该目录结构是一个标准目录结构,目标是把所有源文件进行编译,可以写两个CMakeLists.txt,一个在工程根目录,一个在src目录。根目录下的如下:

 src的如下:

 

        SRC_LIST可以被两个源文件路径赋值,而且不会覆盖,容易出错的地方就是编写该文件时"./"是该文件所在的当前路径,所以一切的包含之类的都要以该文件所在路径为标准

 在build目录内,输入“cmake ..“(或cmake ../)”,然后在该路径下继续输入"make",即可在bin目录下生成可执行文件

上一步的命令也可以自己写一个脚本来实现,每次运行脚本便可生成可执行文件:

3. 参考:

本例程所用到的命令都可参考以下文章:

https://blog.youkuaiyun.com/whahu1989/article/details/82078563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值