g++
一般分为这几步:
1. 预处理,生成.i文件
2. 编译,生成.s文件(汇编文件)
3. 汇编,将汇编文件转化成.o文件(目标文件)
4. 连接目标代码,生成可执行文件
-c 激活预处理,编译,汇编,最后生成obj文件
-S 激活预处理,编译,最后生成.s汇编文件
-E 激活预处理,不生成文件,需要定位到一个输出文件里
-o 为结果文件命名
-O0
-O1
-O2
-O4
编译器的四个优化级别,-O0为没有优化,-O1为默认值,-O3为优化最高级别。
对于valgrind来说,-O0是最喜欢的,只是速度较慢。-O1相对-O0来说错误信息可能不够完整,但一般来说表现良好。-O2就不推荐了。
-Wall 使g++能够产生尽可能过的警告消息
对于多个文件:
g++ foo1.cc foo2.cc -o foo
相当于:
g++ foo1.cc -o foo1.o
g++ foo2.cc -o foo2.o
g++ foo1.o foo2.o -o foo
调用函数库:函数库是一些头文件(.h文件)和库文件(.a和.so文件)的集合
-I 向g++头文件搜索路径中添加新的路径
-L 向g++库文件搜索路径中添加新的路径
-l 指示g++链接的函数库,库文件命名以lib开头,故这里可以省略lib
库文件分为:静态链接库(.a结尾),动态链接库(.so结尾)
g++优先使用动态链接库,在动态链接库不存在的情况下使用静态链接库
可以在编译时增加-static强制使用静态链接库
-Dmacro 相当于C语言中的#define macro
-Dmacro=defn 相当于C语言中的#define macro=defn
-Umacro 相当于C语言中的#undef macro
分享到:
相关推荐
### C++ 使用 g++ 编译 CPP 工程 #### 一、单个源文件生成可执行程序 在本节中,我们将学习如何使用 `g++` 编译器将一个单独的 C++ 源文件编译为可执行程序。 ##### 示例:hello_world.cpp ```cpp #include ...
g++教程详解(命令详解篇)
本文将详细解析如何使用`yum`来安装g++,并深入探讨其背后的工作原理以及相关依赖关系。 ### 使用yum安装g++ #### 基本概念 `g++`是GNU项目下的C++编译器,它是GCC(GNU Compiler Collection)的一部分,主要用于...
在Windows环境下,使用G++编译OpenCV 4.5.5是一个涉及到多个步骤和技术的知识点集成过程。首先,OpenCV是一个开源计算机视觉库,它包含了大量的图像处理和计算机视觉功能,广泛应用于图像分析、机器学习和人工智能...
使用G++可以编译、链接C++程序,同时提供了许多现代C++特性,如模板、异常处理和STL(Standard Template Library)等。 **离线安装GCC和G++**: 离线安装通常涉及下载预先构建好的软件包,然后在目标系统上进行手动...
在Linux系统中,尤其是Ubuntu和Kylin这样的基于Debian的发行版,开发人员经常需要使用C++编译器,如g++。对于那些没有网络连接或者网络环境受限的用户,离线安装g++就显得尤为重要。本文将详细介绍如何在Ubuntu和...
这个过程可能会比较耗时,因为涉及到大量的编译步骤,但是一旦完成,你就可以开始使用g++进行C++编程了。 注意,由于g++ 4.4相对较旧,它可能不支持C++11及其后续标准的特性。如果需要支持现代C++特性,建议安装...
在统信UOS操作系统中,使用64位的g++编译器进行C++编程是一项基础且重要的任务。g++是GCC(GNU Compiler Collection)的一部分,是一个强大的C++编译工具,它支持多种架构,包括LoongArch64。本文将深入探讨在统信...
一旦安装成功,用户就可以使用g++编译C++源代码,将其转化为可执行文件,进行各种复杂的程序开发工作。 需要注意的是,不同的Linux发行版可能对RPM的支持程度不同,例如Fedora、CentOS、RHEL等系统广泛使用RPM。在...
在Linux环境中,熟练掌握`g++`和`gcc`的使用非常重要,这包括了解如何编译、链接、调试和优化代码。例如,`g++ hello.cpp -o hello`命令会编译名为`hello.cpp`的C++源文件,并生成名为`hello`的可执行文件。如果需要...
由于g++通常作为默认的开发环境的一部分,所以你可以直接使用`sudo apt install g++`命令来安装。这会自动处理依赖关系,并下载及安装g++编译器。 3. 如果你手头有`.deb`文件,可以按照描述中的方法操作: 首先,...
Linux 下 g++ 编译与使用静态库和动态库 Linux 下 g++ 编译与使用静态库和动态库是 Linux 开发中一个非常重要的知识点。静态库(*.a)和动态库(*.so)是 Linux 下两种常用的库文件类型,了解它们的生成和使用方法...
Ubuntu 8.04 安装 G++ 详解 在 Ubuntu 8.04 系统中安装 G++ 编译器是非常必要的,特别是在配置 okl4 环境时。下面将详细介绍如何在 Ubuntu 8.04 中安装 G++。...这些步骤可以帮助用户快速地安装 G++ 并开始使用它。
总的来说,g++在Ubuntu 14.04上的安装和使用是一个简单而高效的过程。借助`.dep`文件,我们可以确保所有必要的依赖都已到位,从而专注于C++程序的编写和调试。理解这些基本操作,将为Linux环境下的C++开发打下坚实的...
使用这个g++编译器,开发者可以编写、编译和调试C++程序,这对于在龙芯3A5000处理器上开发本地应用至关重要,尤其是在操作系统、数据库、科学计算、图形界面等领域的应用。同时,由于LoongArch64架构的独立性,这也...
g++在使用时通常会包含多个选项参数,以满足不同编译场景的需要。 首先,g++在执行编译工作时,需要经过四个基本步骤:预处理、编译、汇编和链接。预处理阶段,g++通过预处理器cpp处理源文件,比如包含头文件、宏...
本主题将深入探讨如何在Android设备上建立和使用GCC(GNU Compiler Collection)和G++(GNU C++ Compiler)编译环境,以实现C和C++代码的编译和执行。这个压缩包提供了必要的工具和步骤来实现这一目标。 首先,`...
这些标签强调了这个安装包是专为在Windows环境下使用g++编译器设计的。这意味着它可能包含针对Windows平台的特定适配和优化,例如,可能包含MSYS或MinGW等Windows下的POSIX兼容层,以便g++能正常工作。 **压缩包子...
下面就分别总结下linux下生成并使用静态库与动态库的方法:(由于是C++项目,所以编译器用的g++,但是与gcc的使用是相通的) 首先是准备工作,把我们需要封装成库文件的函数的头文件与源文件写好,如下: //myAPI.h...
5. **安装G++**:类似地,找到G++的RPM包,例如`g++-4.8.5-4.el7.x86_64.rpm`,同样使用`rpm -ivh`命令进行安装。 6. **验证安装**:安装完成后,可以通过运行`gcc --version`和`g++ --version`来检查这两个工具...