首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【技术】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 如果库文件没有放在系统库目录,需要使用

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

linuxg++基本知识「建议收藏」

基本知识 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.2K50

Linux环境使用g++编译C++方法总结

下面的命令将产生名为 helloworld 的可执行文件: $ g++ helloworld.cpp -o helloworld 在命令行输入程序名可使之运行: $ ....而后它在标准库路径查找该库。gcc 的编译过程和输出文件与 g++ 是完全相同的。 在大多数系统,GCC 安装时会安装一名为 c++ 的程序。...下面的命令预处理源码文件 helloworld.cpp 并将结果显示在标准输出: $ g++ -E helloworld.cpp 本文前面所列出的 helloworld.cpp 的源代码,仅仅有六行,...链接一个程序时用库的对象文件还是目录的对象文件都是一样的。库的成员包括普通函数,类定义,类的对象实例等等。静态库的另一个名字叫归档文件(archive),管理这种归档文件的工具叫 ar 。...并将命令行列出的对象文件插入。

2.8K51

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++库使用。

14.4K76

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++库使用。

14.3K21

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++,一时也不知哪个说法正确

2.7K10

Ubuntu环境下使用G++编译CPP文件

第一次用g++编译cpp文件的时候报了undefined reference的错误,自定义类的函数全部都无法找到,查找资料后发现调用的类是需要链接的,本文以一个小例子描述编译的过程。...) { class2 c2; cout << c2.double_f(4) <<endl; return 0; } 先把类class1和类class2以及test文件编译成.o格式的文件 g+...+ -c class1.cpp g++ -c class2.cpp g++ -c test.cpp 由于class1和class2是被依赖的,需要打包成静态库文件(.a格式)用于链接 ar -rc class1...g++同时编译多个文件的方法 对于这个例子,文件被放置在/CPPPFrtory目录。使用CD命令进入包含源文件的文件夹。...通过在命令行上列出文件来编译程序,类型: 方法一:g++ Hello.cpp Welcome2.cpp -o Welcome2.out -ansi //两个cpp源文件,编译后只生成一个 .out 文件

1.4K31

gcc和g++是什么,有什么区别?

值得一提的是,实际使用我们更习惯使用 gcc 指令编译 C 语言程序,用 g++ 指令编译 C++ 代码。...需要强调的一点是,这并不是 gcc 和 g++ 的区别,gcc 指令也可以用来编译 C++ 程序,同样 g++ 指令也可以用于编译 C 语言程序。 那么,gcc 和 g++ 的区别是什么呢?...也就是说,对于 .c 文件来说,gcc 指令以 C 语言代码对待,而 g++ 指令会以 C++ 代码对待。但对于 .cpp 文件来说,gcc 和 g++ 都会以 C++ 代码的方式编译。...举个例子: //位于 demo.c 文件 #include int main() { const char * a = "abc"; printStr(a);...除此之外对于编译执行 C++ 程序,使用 gcc 和 g++ 也是有区别的。要知道,很多 C++ 程序都会调用某些标准库现有的函数或者类对象,而单纯的 gcc 命令是无法自动链接这些标准库文件的。

1.1K10
领券