概述
GCC,GNU Compiler Collection是linux下最主要的编译工具GCC不仅功能非常强大结构也异常灵活。它可以通过不同的前端模块来支持各种语言如Java、Fortran、Pascal、Modula-3和Ada。g++是GCC中的一个工具专门来编译C++语言的。
GCC的参数有( 也是分步实现)
-E 让GCC在预处理结束后停止编译
g++ -E hello.cpp -o hello.i
-c 将hello.i编译成目标代码
g++ -c hello.i -o hello.o
将目标文件连接成可执行文件
g++ hell.o -o hello
可以一步实现
g++ hello.cpp -o hello
假如有两个以上源文件应该一下编译。
一步就实现
g++ foo1.cpp foo2.cpp -o foo
也可以分步实现
g++ -c foo1.cpp -o foo1.o
g++ -c foo2.cpp -o foo2.o
g++ foo1.o foo2.o -o foo
GCC一些常用选项
1、产生警告信息的选项大多数以-W开头 其中有-Wall
g++ -Wall hello.cpp -o hello
2、将所有的警告当成错误的选项-Werror
g++ -Werror hello.cpp -o hello
3、寻找头文件选项 -I,linux默认路径头文件在/usr/include/下,如果不在这个路径下就要用-I指定。
gcc foo.cpp -I /home/include -o foo
4、 库依赖选项 -L,linux默认路径库文件在/usr/lib/下不在这个路径下就要用-L指定。
g++ foo.cpp -L /home/lib -l foo -o foo
库就是将源文件编译之后生成的目标文件的集合。库命名以lib开头。
库有静态库,通常以.a结尾,和动态库通常以.so结尾
默认情况下g++以动态库形式连接。如果要静态库连接则要用-static指定
g++ foo.cpp -L /home/lib -static -l foo -o foo
优化选项 -O n n取0到3之间
编译成静态库GNU 二进制链工具
ar命令可以用来编译成静态库
ar [-] {操作选项} {任选项} [成员名] [count] archive files....
ar r v libtest.a hello.o hello1.o
生成一个库名为libtest 该库中存放了hello.o和hello1.o这两个模块。
操作项d(删除)、 m(移动)、p(标准输出)、q(快速追加)、r(在库中插入模块)、t(显示库的模块清单)、x(从库中提取一个成员)。
任选项:a(成员后面添加一个新文件)、b(成员前面添加一个新文件)、c(创建一个库)、f(截短指定名字)、v(显示执行操作选项的附加信息)。
参考至:http://wenku.baidu.com/link?url=-_qQQOqybriLc7lIdEDEFhp7IKdu3lPHbsx6OesdJqnqY_qgmsW3wRJbcxxPWwP6v1KPy68OWyruZCWa9Y0q1Fq8aqdiS1BB9NLKGClOH2q
如有错误,欢迎指正
邮箱:czmcj@163.com
相关推荐
linux下C++连接数据库程序源码附加编译命令
在linux下如何编译C++程序.docx
在Linux下编译并运行C/C++程序的流程,包括环境设定,编译命令,makefile编写等
从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码? 在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支...
它已成为许多集成开发工具的基础,被世界各地的发行商应用在Linux和其他操作系统之上。 GCC已不再是主要针对GNU项目自身的软件的小型C语言编译器了。如今,它已支持了许多不同的语言,包括C、C++、Ada、Fortran、...
详细描述了linux下g++编译c++程序需要安装的程序,及安装过程
Linux 串口源代码,使用纯C++代码实现,没有使用其他库,可以编译使用。
Linux下C++编程和在Windows下的没有什么两样,它同样需要编译、链接、调度、运行等步骤,只不过执行这些步骤在两种操作系统下所做的不是同样的事情。本文以一个最简单也是最经典的Hello World为例介绍了Linux操作...
在 centos 7 下使用 gcc 4.8.5 + cmake 3.16.9 编译,包含 bin, include, lib, lib64, share 五个目录,可以直接在 linux C++ 程序中引用。 因为 grpc 编译比较麻烦,且依赖项较多,故而分享一下编译后的版本,本人...
本课程主要针对没有或者很少写过linux上C++程序的同学, 本课程会教你如何从0基础开始,安装配置ubuntu虚拟机、使用GCC编译普通程序、动态库、静态库,编写复杂项目配置文件makefile,使用GDB工具调试C++程序。
本文件提供了在linux操作系统下的C++图的基本实现, 本文件主要由4个文件组成,main.cpp map.cpp map.h ...主要的目的为让初学者掌握C++程序的编译过程和在linux操作系统下的指令编译,以及简单的Makefile的编写
LINUX下编译与调试 LINUX下编译与调试 1 1. gcc/g++编译器 1 2. makefile使用 2 2.1. 基本过程处理 2 2.2. 特殊处理与伪目标 3 2.3. 变量、函数与规则 5 3. 程序调试 8 3.1. gdb常用命令 8 3.2. gdb 应用举例 9 3.3...
Turbo编译码程序c、c++,包含编码、译码两个.cpp,可以在VS中Linux下加入工程中使用,也可以加在Matlab中使用
在linux的g++下编译通过的c++进制转换程序。非库函数的直接调用。对c、c++初学者定有帮助,希望给予建议。 注:此程序中还有很多可以改善地方,没有来得及修改,见谅。
是K均值算法的一个Linux下的编译的程序,用标准C++编写的-K-means algorithm is a Linux compiler procedures used to prepare the standard C
基于linux下的c/c++程序,多线程,断点续传功能没有实现, 可传输大于2G的文件。 设计思想:预先分配的N个缓冲区形成类似循环队列。 【1】预先分配N个缓冲区,多线程方式对缓冲区进行读写互斥,有类似生产者消费者的...
c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务
C++大作业Linux平台下基于QT的文件管理程序系统源码,支持MP3的ID3V1信息,支持一键创建 desktop 快捷方式和修改 desktop 属性。支持压缩和解压缩: 压缩功能需要安装 zip:sudo apt-get install zip 解压缩功能需要...
所有必需的开发环境搭建以及工具选择安装好之后,这里通过一个完整的实际程序例子来演示一下Linux系统下C++程序开发的整个过程,让初学者对于Linux下C++应用开发有一个初步的印象。 打开UE编辑器,单击软件界面上...
里面包含了如何在linux在编译调试C、C++程序的方法文档,详细介绍了gcc、g++、gdb命令。