`

在linux下如何编译C++程序

    博客分类:
  • C++
 
阅读更多

概述

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++程序.docx

    在 Linux 下如何编译 C++ 程序 本文将详细介绍如何在 Linux 系统下编译 C++ 程序。编译 C++ 程序需要使用 GCC(GNU Compiler Collection), GCC 是 Linux 下最主要的编译工具。GCC 不仅功能非常强大,结构也非常...

    poco c++ linux 可编译使用

    在Linux环境下使用Poco,你需要经历几个关键步骤:解压、编译和安装。下面我们将详细探讨这些步骤以及相关的知识点。 首先,解压Poco库。当你下载了poco-1.9.0的压缩包后,通常是一个.tar.gz或.zip文件,你需要将其...

    linux下GCC编译C程序

    在Linux环境下,C程序的编译通常涉及以下几个步骤: 1. **编译单个源文件**:创建一个简单的C程序,例如经典的"Hello World"程序,然后使用`gcc`命令编译。例如: ```bash gcc -o hello hello.c ``` 这会生成名...

    linux下的C++编程.pdf

    总结来说,文档涵盖了在Linux环境下进行C++编程的一些基础知识点和工具使用,包括开发环境的搭建、基本的程序结构、编译和链接过程、类的定义和对象的创建、调试工具的使用、文件操作以及一些Linux系统命令的使用。...

    c++ linux下编译方法

    一旦g++安装完毕,你就可以开始编译C++程序了。假设你有一个名为`main.cpp`的源文件,其中包含了`main`函数和其他C++代码。编译过程通常分为以下几个步骤: 1. **预处理**:这是编译的第一步,由预处理器cpp完成。...

    linux环境中c++调用lua动态链接库以及编译方法

    本文将深入探讨如何在C++程序中调用Lua动态链接库,并讲解其编译过程和环境配置。 首先,我们需要理解Lua的动态链接库(liblua.so)。Lua是一个轻量级的脚本语言,它的动态链接库允许C/C++程序直接嵌入和调用Lua...

    linux下c++开发环境搭建

    Linux 下 C++ 开发环境搭建 Linux 作为一个开源的操作系统,广泛应用于服务器、嵌入式系统和个人计算机等领域。作为一名 C++ 开发者,在 Linux 平台上搭建一个完整的 C++ 开发环境是非常必要的。本文将详细介绍...

    Linux C++编译及 静态/动态 链接库 笔记

    这篇笔记主要探讨了在Linux环境下如何编译C++程序以及如何处理静态和动态链接库。以下是对这些知识点的详细说明: 1. **C++编译过程**: - C++程序的编译通常包括预处理、编译、汇编和链接四个步骤。预处理阶段...

    mysql-5.7.18源码和connector C++源码在Linux在编译安装

    在Linux环境下,构建和安装MySQL 5.7.18的源码以及Connector/C++ 1.1.8是一项技术性较强的任务。首先,我们需要理解MySQL数据库系统的基础,它是世界上最流行的开源关系型数据库管理系统,而Connector/C++是MySQL...

    linux下的c++编程实验

    1. **GCC编译器**:Linux下最常用的C++编译器是GNU Compiler Collection (GCC),包括g++,用于编译和链接C++程序。了解如何使用`g++`命令行参数,如`-c`用于编译源文件为对象文件,`-o`指定输出文件名,以及`-Wall`...

    linux c++工程转windows下c++工程工具

    标题提到的"linux c++工程转windows下c++工程工具"解决了在不同操作系统之间迁移项目的关键问题。 Linux环境通常使用CMake作为构建系统,它是一种高级的跨平台自动化构建工具,可以生成特定平台的构建文件,如...

    如何在Linux下用gcc编译c程序

    对于初学者或专业人士而言,掌握如何在Linux环境下使用gcc编译C程序是至关重要的。下面我们将详细探讨这个过程及其相关知识点。 首先,要开始编译C程序,你需要确保你的Linux系统已经安装了GCC。你可以通过运行`gcc...

    在Linux下编译C或C++程序的教程

    在Linux环境下编译C或C++程序是一项基本技能,尤其对于开发者来说至关重要。无论是Ubuntu、Red Hat、Fedora、Debian还是其他Linux发行版,遵循相同的基本步骤即可完成编译。下面将详细介绍如何在Linux中配置环境并...

    Linux下的C++标准库

    当我们在编译或运行C++程序时,如果遇到“libstdc++.so未找到”的错误,通常是因为系统缺少对应的动态链接库。 标题"Linux下的C++标准库"指向的核心知识点是Linux系统中C++程序依赖于`libstdc++`库来运行。这个库...

    Linux下编译的pcl库

    标题提到的“Linux下编译的pcl库”是指在Linux操作系统环境下编译构建的PCL库。PCL是一个庞大的、模块化的C++库,专门用于处理3D点云数据,包括点云的获取、处理、建模、分析等多个环节。 PCL库的核心功能包括: 1...

    Linux编译C/C++

    - **g++**: 用于编译C++语言源代码。 - **cc** 和 **c++**: 在某些系统中可能作为gcc或g++的别名存在,用于兼容性目的。 2. **GCC的基本用法示例:** - 编译一个名为`test.c`的C语言源文件,并生成名为`a.out`的...

    linux中编译的mediainfo执行程序

    Mediainfo 源码编译后生成的可执行程序可以在各种Linux发行版中运行,这得益于其跨平台的设计和对Linux系统的广泛兼容性。以下是关于 Mediainfo 及其在Linux中编译过程的相关知识点: 1. **Mediainfo 工具**:...

    在Linux下编译并运行C程序

    GCC主要用于编译C语言程序,而G++则专门用于编译C++程序。 要安装这些编译工具,可以使用Linux发行版自带的包管理器。例如,在基于Debian的发行版(如Ubuntu)中,可以通过以下命令安装: ```bash sudo apt-get ...

    linux下用c++开发的聊天工具的源码包

    在Linux环境下,C++是一种广泛使用的编程语言,用于构建各种复杂的应用程序,包括网络通信工具。本项目提供了一个使用C++开发的聊天工具的源代码,涵盖了客户端和服务器端的实现,这对于理解网络编程和多线程技术是...

    Linux环境C++语言程序设计教材

    在Linux环境下,开发者通常会使用到GCC(GNU Compiler Collection)或Clang这样的编译器来编译C++源代码。 本书在内容上涵盖了以下几个核心知识点: 1. Linux系统概述:介绍Linux的基本概念,包括操作系统的组成、...

Global site tag (gtag.js) - Google Analytics