0
点赞
收藏
分享

微信扫一扫

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

楠蛮鬼影 2022-02-26 阅读 74

系列文章目录

·【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.编译过程

  1. 预处理(Pre-Processing) -  .i文件
  2. 编译(Compiling) -  .s文件
  3. 汇编(Assembling) -  .o文件
  4. 链接(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 #运行可执行文件
举报

相关推荐

0 条评论