`

在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++连接数据库程序源码附加编译命令

    linux下C++连接数据库程序源码附加编译命令

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

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

    在Linux下编译并运行C程序

    在Linux下编译并运行C/C++程序的流程,包括环境设定,编译命令,makefile编写等

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

    从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码? 在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支...

    linux下GCC编译C程序

    它已成为许多集成开发工具的基础,被世界各地的发行商应用在Linux和其他操作系统之上。 GCC已不再是主要针对GNU项目自身的软件的小型C语言编译器了。如今,它已支持了许多不同的语言,包括C、C++、Ada、Fortran、...

    linux下c++开发环境搭建

    详细描述了linux下g++编译c++程序需要安装的程序,及安装过程

    Linux下串口通讯程序C++源代码

    Linux 串口源代码,使用纯C++代码实现,没有使用其他库,可以编译使用。

    Linux操作系统下C++编程

    Linux下C++编程和在Windows下的没有什么两样,它同样需要编译、链接、调度、运行等步骤,只不过执行这些步骤在两种操作系统下所做的不是同样的事情。本文以一个最简单也是最经典的Hello World为例介绍了Linux操作...

    grpc-1.30.2 Linux 编译静动态库

    在 centos 7 下使用 gcc 4.8.5 + cmake 3.16.9 编译,包含 bin, include, lib, lib64, share 五个目录,可以直接在 linux C++ 程序中引用。 因为 grpc 编译比较麻烦,且依赖项较多,故而分享一下编译后的版本,本人...

    学会在Linux上编译调试C++项目

    本课程主要针对没有或者很少写过linux上C++程序的同学, 本课程会教你如何从0基础开始,安装配置ubuntu虚拟机、使用GCC编译普通程序、动态库、静态库,编写复杂项目配置文件makefile,使用GDB工具调试C++程序。

    linux下的C++图的操作

    本文件提供了在linux操作系统下的C++图的基本实现, 本文件主要由4个文件组成,main.cpp map.cpp map.h ...主要的目的为让初学者掌握C++程序的编译过程和在linux操作系统下的指令编译,以及简单的Makefile的编写

    LINUX下编译与调试

    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++

    Turbo编译码程序c、c++,包含编码、译码两个.cpp,可以在VS中Linux下加入工程中使用,也可以加在Matlab中使用

    在linux下g++下编译通过的进制转换程序

    在linux的g++下编译通过的c++进制转换程序。非库函数的直接调用。对c、c++初学者定有帮助,希望给予建议。 注:此程序中还有很多可以改善地方,没有来得及修改,见谅。

    K均值算法的一个Linux下的编译的程序,用标准C++编写

    是K均值算法的一个Linux下的编译的程序,用标准C++编写的-K-means algorithm is a Linux compiler procedures used to prepare the standard C

    C C++ Linux多线程文件程序

    基于linux下的c/c++程序,多线程,断点续传功能没有实现, 可传输大于2G的文件。 设计思想:预先分配的N个缓冲区形成类似循环队列。 【1】预先分配N个缓冲区,多线程方式对缓冲区进行读写互斥,有类似生产者消费者的...

    c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务完整示例代码

    c++代码如何实现在win/linux下创建编译及部署后台服务,并管理其他服务

    C++大作业Linux平台下基于QT的文件管理程序系统源码.zip

    C++大作业Linux平台下基于QT的文件管理程序系统源码,支持MP3的ID3V1信息,支持一键创建 desktop 快捷方式和修改 desktop 属性。支持压缩和解压缩: 压缩功能需要安装 zip:sudo apt-get install zip 解压缩功能需要...

    基于Linux的C++ 教程合集, 包括C++基础, C++服务器, C++专题.rar

    所有必需的开发环境搭建以及工具选择安装好之后,这里通过一个完整的实际程序例子来演示一下Linux系统下C++程序开发的整个过程,让初学者对于Linux下C++应用开发有一个初步的印象。 打开UE编辑器,单击软件界面上...

    Linux下编译与调试((gcc、gdb)

    里面包含了如何在linux在编译调试C、C++程序的方法文档,详细介绍了gcc、g++、gdb命令。

Global site tag (gtag.js) - Google Analytics