首页
学习
活动
专区
圈层
工具
发布

【技术】Linux中编译C++代码的g++工具,以及g++的常用操作指令

这是一篇技术文章,如果你想继续阅读,并希望从中有所收获,你现在应当具备以下技能: C++ 编程语言基础 Linux 操作系统基础 本文目录 1....# 编译test.cpp 文件,在 Linux 下,默认产生名为 a.out 的二进制可执行文件 g++ test.cpp 实际上,上面的一步编译指令包含了以下几个过程 第一步:预处理 Pre-processing...生成 bin 二进制文件 # -o 编译选项来为将产生的可执行文件指定文件名,如果不使用-o参数,在Linux下默认输出名为 a.out 的可执行文件 g++ test.o -o test 3. g++...指定库文件 在 g++ 工具中, -l 或者 -L 指定库文件,|(大写i) 指定库文件路径 -l 参数(小写L)就是用来指定程序要链接的库,-l 参数紧接着就是库名,在/lib、/usr/lib、/usr.../local/lib里的库直接调用 -l 参数就能链接,这三个库目录我们在下文中叫做系统库目录 # 链接 glog库 编译 g++ -lglog test.cpp 如果库文件没有放在系统库目录中,需要使用

5.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux 编译器 gcc 与 g++

    二、安装 gcc 与 g++ 在大多数 Linux 发行版中,安装gcc和g++非常便捷,通过包管理器即可完成。...2 CentOS/RHEL 系统 在终端中输入: sudo yum groupinstall “Development Tools” 此命令会安装一系列开发工具,其中就包括gcc和g++。...四 函数库 Linux 函数库分类 静态库 静态库在程序编译时会被直接链接到可执行文件中,成为可执行文件的一部分。其文件名通常以.a结尾,例如libexample.a 。...gcc选项 五 Linux调试器-gdb使用 背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,...项目自动化构建工具-make/Makefile 在 Linux 软件开发过程中,随着项目规模的扩大,源文件数量不断增加,编译过程变得愈发复杂。

    15910

    linux与g++基本知识「建议收藏」

    基本知识 gcc、g++、gdb区别 linux和win换行符 yum、apt、rpm区别 二进制包和源码包 linux动态库和静态库 cpp文件编译流程 g++ 重要参数 生成库文件 生成静态库 生成动态库...gcc是GCC中的GUN C Compiler(C 编译器) g++是GCC中的GUN C++ Compiler(C++编译器) gdb是是GCC中的GUN 调试工具 linux和win换行符 windows...底层也是调用gcc和g++来编译代码的 二进制包和源码包 Linux 软件包管理大致可分为二进制包、源码包,使用的工具也各不相同。...linux动态库和静态库 静态库(.a、.lib)和动态库(.so、.dll) cpp文件编译流程 预处理pre-processing # 头文件和宏定义等 进行展开 生成.i文件 g++ -E test.cpp...test -D 定义宏 # 使用gcc/g++编译的时候定义宏 #常用场景 # -DDEBUG 定义DEBUG宏 可能文件中又DEBUG宏部分的相关信息 用个DDEBUG来选择开去或关闭DEBUG

    1.8K50

    【linux学习指南】Linux编译器 gcc和g++使用

    实例: gcc hello.o –o hello 函数库 在这里涉及到一个重要的概念:函数库 我们的C程序中,并没有定义“printf”的函数实现,且在预编译中包含的“stdio.h”中也只有该函数的声明...动态库: .so (linux).dll(windows) 静态库: .a (linux).lib 最后的答案是:系统把这些函数实现都被做到名为 libc.so.6 的库文件中去了,在没有特别指定时...linux-vdso.so.1: 这是一个虚拟动态共享对象(VDSO),用于提供一些内核功能的用户空间接口。它通常用于提高系统调用的效率。...总结 gcc 和 g++ 是 GNU Compiler Collection (GCC) 中的两个编译器,分别用于编译 C 和 C++ 语言的源代码。...g++ 能够处理 C++ 的特性,如类、模板、异常处理等,而 gcc 在处理这些特性时可能会出现错误或警告。

    1.1K10

    g++入门教程

    (8)其他选项 -fpic 编译器生成位置无关目标码(PIC,position-independent code),用于动态链接库,即Linux下的.so文件。...fPIC重新编译 -fPIC 同-fpic功能一致,生成位置无关目标码,用于生成动态链接库,建议使用该选项,而非-fpic -v 显示详细的编译、汇编、连接命令 -pipe 使用管道代替编译过程中的临时文件...,在使用非gnu汇编工具的时候,可能有些问题 g++ -pipe -o hello.out hello.cpp -ansi 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性...-imacros file 将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中 -nostdinc 使编译器不在系统缺省的头文件目录里面找头文件...-nostdin C++ 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,此选项在创建libg++库使用。

    15.7K78

    g++入门教程

    百度百科说是egcs,但是我在Linux并没有查到该命令。 g++ -S test.i -o test.s //生成汇编.s文件 (3)汇编(Assembly)。...-v 显示详细的编译、汇编、连接命令 -pipe 使用管道代替编译过程中的临时文件,在使用非gnu汇编工具的时候,可能有些问题 g++ -pipe -o hello.out hello.cpp...-ansi 关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性(包括禁止一些asm inline typeof关键字,以及 UNIX,vax等预处理宏。...-imacros file 将file文件的宏,扩展到gcc/g++的输入文件,宏定义本身并不出现在输入文件中 -nostdinc 使编译器不在系统缺省的头文件目录里面找头文件...-nostdin C++ 规定不在g++指定的标准路经中搜索,但仍在其他路径中搜索,此选项在创建libg++库使用。

    15.4K21

    gcc和g++的区别

    2.编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了,这就给人一种错觉...,好像cpp程序只能用g++似的。...误区三:编译只能用gcc,链接只能用g++ 严格来说,这句话不算错误,但是它混淆了概念,应该这样说:编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。...因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。...gcc和g++的区别  我们在编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确

    3.3K10

    gcc 与 g++:有什么区别?

    安装 作为在 Linux 中编译 C 和 C++ 程序最重要的工具之一,它们都可以在所有 Linux 发行版的存储库中找到。...以下是在各种 Linux 发行版上安装它的方法: 对于 Ubuntu/Debian: sudo apt install gcc g++ 对于 Fedora/RHEL: sudo dnf instal...gcc g++ 对于 Arch Linux: sudo pacman -S gcc (Arch 在 GCC 包本身中包含了 G++) 用法 在本节中,我将介绍如何使用 GCC 和 G++ 编译 C...程序: 在Linux中使用G++编译并运行C程序 该&&运算符用于运行多个命令,但会先执行编译代码,然后再执行。.../hello 在 Linux 中使用 G++ 编译并运行 C++ 代码 版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!

    41410
    领券