概述
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++ 程序。编译 C++ 程序需要使用 GCC(GNU Compiler Collection), GCC 是 Linux 下最主要的编译工具。GCC 不仅功能非常强大,结构也非常...
在Linux环境下使用Poco,你需要经历几个关键步骤:解压、编译和安装。下面我们将详细探讨这些步骤以及相关的知识点。 首先,解压Poco库。当你下载了poco-1.9.0的压缩包后,通常是一个.tar.gz或.zip文件,你需要将其...
在Linux环境下,C程序的编译通常涉及以下几个步骤: 1. **编译单个源文件**:创建一个简单的C程序,例如经典的"Hello World"程序,然后使用`gcc`命令编译。例如: ```bash gcc -o hello hello.c ``` 这会生成名...
总结来说,文档涵盖了在Linux环境下进行C++编程的一些基础知识点和工具使用,包括开发环境的搭建、基本的程序结构、编译和链接过程、类的定义和对象的创建、调试工具的使用、文件操作以及一些Linux系统命令的使用。...
一旦g++安装完毕,你就可以开始编译C++程序了。假设你有一个名为`main.cpp`的源文件,其中包含了`main`函数和其他C++代码。编译过程通常分为以下几个步骤: 1. **预处理**:这是编译的第一步,由预处理器cpp完成。...
本文将深入探讨如何在C++程序中调用Lua动态链接库,并讲解其编译过程和环境配置。 首先,我们需要理解Lua的动态链接库(liblua.so)。Lua是一个轻量级的脚本语言,它的动态链接库允许C/C++程序直接嵌入和调用Lua...
Linux 下 C++ 开发环境搭建 Linux 作为一个开源的操作系统,广泛应用于服务器、嵌入式系统和个人计算机等领域。作为一名 C++ 开发者,在 Linux 平台上搭建一个完整的 C++ 开发环境是非常必要的。本文将详细介绍...
这篇笔记主要探讨了在Linux环境下如何编译C++程序以及如何处理静态和动态链接库。以下是对这些知识点的详细说明: 1. **C++编译过程**: - C++程序的编译通常包括预处理、编译、汇编和链接四个步骤。预处理阶段...
在Linux环境下,构建和安装MySQL 5.7.18的源码以及Connector/C++ 1.1.8是一项技术性较强的任务。首先,我们需要理解MySQL数据库系统的基础,它是世界上最流行的开源关系型数据库管理系统,而Connector/C++是MySQL...
1. **GCC编译器**:Linux下最常用的C++编译器是GNU Compiler Collection (GCC),包括g++,用于编译和链接C++程序。了解如何使用`g++`命令行参数,如`-c`用于编译源文件为对象文件,`-o`指定输出文件名,以及`-Wall`...
标题提到的"linux c++工程转windows下c++工程工具"解决了在不同操作系统之间迁移项目的关键问题。 Linux环境通常使用CMake作为构建系统,它是一种高级的跨平台自动化构建工具,可以生成特定平台的构建文件,如...
对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...
在Linux环境下编译C或C++程序是一项基本技能,尤其对于开发者来说至关重要。无论是Ubuntu、Red Hat、Fedora、Debian还是其他Linux发行版,遵循相同的基本步骤即可完成编译。下面将详细介绍如何在Linux中配置环境并...
当我们在编译或运行C++程序时,如果遇到“libstdc++.so未找到”的错误,通常是因为系统缺少对应的动态链接库。 标题"Linux下的C++标准库"指向的核心知识点是Linux系统中C++程序依赖于`libstdc++`库来运行。这个库...
标题提到的“Linux下编译的pcl库”是指在Linux操作系统环境下编译构建的PCL库。PCL是一个庞大的、模块化的C++库,专门用于处理3D点云数据,包括点云的获取、处理、建模、分析等多个环节。 PCL库的核心功能包括: 1...
- **g++**: 用于编译C++语言源代码。 - **cc** 和 **c++**: 在某些系统中可能作为gcc或g++的别名存在,用于兼容性目的。 2. **GCC的基本用法示例:** - 编译一个名为`test.c`的C语言源文件,并生成名为`a.out`的...
Mediainfo 源码编译后生成的可执行程序可以在各种Linux发行版中运行,这得益于其跨平台的设计和对Linux系统的广泛兼容性。以下是关于 Mediainfo 及其在Linux中编译过程的相关知识点: 1. **Mediainfo 工具**:...
GCC主要用于编译C语言程序,而G++则专门用于编译C++程序。 要安装这些编译工具,可以使用Linux发行版自带的包管理器。例如,在基于Debian的发行版(如Ubuntu)中,可以通过以下命令安装: ```bash sudo apt-get ...
在Linux环境下,C++是一种广泛使用的编程语言,用于构建各种复杂的应用程序,包括网络通信工具。本项目提供了一个使用C++开发的聊天工具的源代码,涵盖了客户端和服务器端的实现,这对于理解网络编程和多线程技术是...
在Linux环境下,开发者通常会使用到GCC(GNU Compiler Collection)或Clang这样的编译器来编译C++源代码。 本书在内容上涵盖了以下几个核心知识点: 1. Linux系统概述:介绍Linux的基本概念,包括操作系统的组成、...