`
Goldice
  • 浏览: 107737 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

g++的使用

阅读更多

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

 

1
1
分享到:
评论

相关推荐

    C++-使用g++编译cpp工程.pdf

    ### C++ 使用 g++ 编译 CPP 工程 #### 一、单个源文件生成可执行程序 在本节中,我们将学习如何使用 `g++` 编译器将一个单独的 C++ 源文件编译为可执行程序。 ##### 示例:hello_world.cpp ```cpp #include ...

    g++教程详解(命令详解篇)

    g++教程详解(命令详解篇)

    使用yum安装g++

    本文将详细解析如何使用`yum`来安装g++,并深入探讨其背后的工作原理以及相关依赖关系。 ### 使用yum安装g++ #### 基本概念 `g++`是GNU项目下的C++编译器,它是GCC(GNU Compiler Collection)的一部分,主要用于...

    windows下使用g++编译的opencv4.5.5

    在Windows环境下,使用G++编译OpenCV 4.5.5是一个涉及到多个步骤和技术的知识点集成过程。首先,OpenCV是一个开源计算机视觉库,它包含了大量的图像处理和计算机视觉功能,广泛应用于图像分析、机器学习和人工智能...

    gcc g++ 离线安装包

    使用G++可以编译、链接C++程序,同时提供了许多现代C++特性,如模板、异常处理和STL(Standard Template Library)等。 **离线安装GCC和G++**: 离线安装通常涉及下载预先构建好的软件包,然后在目标系统上进行手动...

    ubuntu离线安装g++

    在Linux系统中,尤其是Ubuntu和Kylin这样的基于Debian的发行版,开发人员经常需要使用C++编译器,如g++。对于那些没有网络连接或者网络环境受限的用户,离线安装g++就显得尤为重要。本文将详细介绍如何在Ubuntu和...

    ubuntu g++安装教程及安装包

    这个过程可能会比较耗时,因为涉及到大量的编译步骤,但是一旦完成,你就可以开始使用g++进行C++编程了。 注意,由于g++ 4.4相对较旧,它可能不支持C++11及其后续标准的特性。如果需要支持现代C++特性,建议安装...

    统信UOS 用g++( 64 位)

    在统信UOS操作系统中,使用64位的g++编译器进行C++编程是一项基础且重要的任务。g++是GCC(GNU Compiler Collection)的一部分,是一个强大的C++编译工具,它支持多种架构,包括LoongArch64。本文将深入探讨在统信...

    g++rpm安装包

    一旦安装成功,用户就可以使用g++编译C++源代码,将其转化为可执行文件,进行各种复杂的程序开发工作。 需要注意的是,不同的Linux发行版可能对RPM的支持程度不同,例如Fedora、CentOS、RHEL等系统广泛使用RPM。在...

    g++ gcc编译器安装包及其依赖

    在Linux环境中,熟练掌握`g++`和`gcc`的使用非常重要,这包括了解如何编译、链接、调试和优化代码。例如,`g++ hello.cpp -o hello`命令会编译名为`hello.cpp`的C++源文件,并生成名为`hello`的可执行文件。如果需要...

    g++ for linux 安装

    由于g++通常作为默认的开发环境的一部分,所以你可以直接使用`sudo apt install g++`命令来安装。这会自动处理依赖关系,并下载及安装g++编译器。 3. 如果你手头有`.deb`文件,可以按照描述中的方法操作: 首先,...

    linux下g++编译与使用静态库和动态库

    Linux 下 g++ 编译与使用静态库和动态库 Linux 下 g++ 编译与使用静态库和动态库是 Linux 开发中一个非常重要的知识点。静态库(*.a)和动态库(*.so)是 Linux 下两种常用的库文件类型,了解它们的生成和使用方法...

    ubuntu 8.04 安装g++

    Ubuntu 8.04 安装 G++ 详解 在 Ubuntu 8.04 系统中安装 G++ 编译器是非常必要的,特别是在配置 okl4 环境时。下面将详细介绍如何在 Ubuntu 8.04 中安装 G++。...这些步骤可以帮助用户快速地安装 G++ 并开始使用它。

    g++编译命令选项.

    g++在使用时通常会包含多个选项参数,以满足不同编译场景的需要。 首先,g++在执行编译工作时,需要经过四个基本步骤:预处理、编译、汇编和链接。预处理阶段,g++通过预处理器cpp处理源文件,比如包含头文件、宏...

    g++(loongarch64 架构).zip

    使用这个g++编译器,开发者可以编写、编译和调试C++程序,这对于在龙芯3A5000处理器上开发本地应用至关重要,尤其是在操作系统、数据库、科学计算、图形界面等领域的应用。同时,由于LoongArch64架构的独立性,这也...

    Android上的gcc/g++编译环境

    本主题将深入探讨如何在Android设备上建立和使用GCC(GNU Compiler Collection)和G++(GNU C++ Compiler)编译环境,以实现C和C++代码的编译和执行。这个压缩包提供了必要的工具和步骤来实现这一目标。 首先,`...

    g++ for windows 网络安装包

    这些标签强调了这个安装包是专为在Windows环境下使用g++编译器设计的。这意味着它可能包含针对Windows平台的特定适配和优化,例如,可能包含MSYS或MinGW等Windows下的POSIX兼容层,以便g++能正常工作。 **压缩包子...

    Linux下g++编译与使用静态库和动态库的方法

    下面就分别总结下linux下生成并使用静态库与动态库的方法:(由于是C++项目,所以编译器用的g++,但是与gcc的使用是相通的) 首先是准备工作,把我们需要封装成库文件的函数的头文件与源文件写好,如下: //myAPI.h...

    g++安装包 .dep文件

    总的来说,g++在Ubuntu 14.04上的安装和使用是一个简单而高效的过程。借助`.dep`文件,我们可以确保所有必要的依赖都已到位,从而专注于C++程序的编写和调试。理解这些基本操作,将为Linux环境下的C++开发打下坚实的...

    Centos7.3 gcc g++ 4.8.5 离线rpm安装包

    5. **安装G++**:类似地,找到G++的RPM包,例如`g++-4.8.5-4.el7.x86_64.rpm`,同样使用`rpm -ivh`命令进行安装。 6. **验证安装**:安装完成后,可以通过运行`gcc --version`和`g++ --version`来检查这两个工具...

Global site tag (gtag.js) - Google Analytics