栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【Linux下C++开发】第二篇·开发环境搭建及GCC、GDB使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Linux下C++开发】第二篇·开发环境搭建及GCC、GDB使用

系列文章目录

·【Linux下C++开发】第一篇·Linux系统基本操作

·【Linux下C++开发】第二篇·开发环境搭建及gcc编译器

目录

系列文章目录

一、安装GCC/GDB、CMake

二、GCC编译器

1.编译过程

2.g++重要编译参数


一、安装GCC/GDB、CMake

gcc是编译器,gdb是调试器,使用前需要先进行安装:

$ sudo apt update
$ sudo apt install build-essential gdb
$ sudo apt install cmake

二、GCC编译器

使用gcc指令编译C代码;使用g++指令编译C++代码

1.编译过程
    预处理(Pre-Processing) -  .i文件编译(Compiling) -  .s文件汇编(Assembling) -  .o文件链接(linking)-  bin文件
$ g++ -E test.cpp -o test.i #-E表示仅对输入文件进行预处理
$ g++ -s test.i -o test.s #-s表示g++在为c++代码产生了汇编语言文件后停止编译
$ g++ -c test.s -o test.o #-c表示g++仅把源代码编译为机器语言的目标代码
$ g++ test.o -o test #产生可执行文件test

但是在平时的编译过程中,我们只需要下面这一条代码即可编译生成一个可执行文件:

$ g++ test.cpp -o test

2.g++重要编译参数
-g产生带调试信息的可执行文件,可被GDB使用
-O[n]优化源代码,一般用-O2
-l 和 -L指定库文件/指定库文件路径
-I指定头文件搜索目录
-Wall打印警告信息
-w关闭警告信息
-std=c++11设置编译标准
-o指定输出文件名
-D定义宏
3.生成库文件并编译 (1)生成静态库
$ cd src #进入到src源代码文件夹中
$ g++ libtest.cpp -c -I../include #汇编,生成.o文件
$ ar rs libtest.a  libtest.o #生成静态库libtest.a
$ cd ..
$ g++ main.cpp -Iinclude -Lsrc -llibtest -o test #运行可执行文件
(2)生成共享库
$ cd src
$ g++ libtest.cpp -I../include -fPIC -shared -o libtest.so #创建共享库
$ cd ..
g++ main.cpp -Iinclude -Lsrc -llibtest -o test #运行可执行文件

三、GDB调试器 1.常用调试命令参数

调试开始:gdb [exe]

h查看命令帮助
r重新开始运行文件
start单步执行
l查看源代码
set设置变量的值
n单步调试(逐过程,函数直接执行)
s单步调试(逐语句,跳到函数内执行)
finish结束当前函数,返回到函数调用点
i查看函数内部变量的数值
b在第num行设置断点
d删除断点
q退出gdb
print输出某个变量的值
2.命令行调试
#include 
using namespace std;

int main()
{
	cout << "Hello World!" << endl;
	int sum;
	for(int i=0;i<100;i++)
	{
		sum += i;
	}
	cout << "sum is: " << sum << endl;
	return 0;
}

对以上这段代码进行gdm调试

$ g++ -g test.cpp -o test
$ gdb test #调试开始
$ b 10 #在10行设置断点
$ r #运行程序
$ p sum #打印输出sum的值
$ q #退出gdb调试

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/743799.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号