***gcc是C编译器;

***g++是C++编译器;

***linux下cc一般是一个符号连接,指向gcc

***gcc说明

1.gcc编译常用格式:

gcc  C源文件 -o 目标文件

gcc -o 目标文件  C源文件

gcc C源文件

最后一种情况产生的目标文件默认为a.out

2.gcc总体参数

-c  只是编译不链接,生成目标文件

-S  只是编译不汇编,生成汇编代码

-E  只进行预编译

-g 在可执行文件中包含调试信息(与下一篇的必须命令)

-o file 把输出文件输出到file中

-v 显示gcc的版本信息

-I dir 在头文件的搜索路径中添加dir目录

-L dir 在库文件的路径列表中添加dir目录

-static 链接静态库

-library 连接名问library的库文件

3.gcc生成库流程

gcc指令的一般格式如下:

gcc [参数] 要编译的文件 [参数]  [目标文件]

gcc编译流程:

源代码(.c)->预处理(Pre-Processing)->编译(Compiling)->汇编(Assembing)->链接(Linking)->可执行文件

具体命令如下:

c文件用gcc的"-E"参数预处理,生成预处理“.i”文件,用gcc的“-S”参数编译,生成汇编“.s"文件,再用gcc的”-c“参数汇编,生成二进制”.o“文件,最后再用一次gcc把”.o“文件和一些链接库文件链接成可执行文件。

我们用gcc编译程序时,可能会用到“-I”(大写i),“-L”(大写l),“-l”(小写l)等参数,下面做个记录:

例:

gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib

多个文件合并创造一个程序时,就要再-o后,写上多个文件的文件名

例:

gcc -o json cJSON.c test.c

GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名

1。gcc包含的c/c++编译器
gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什
么意思:))一般c程序就用gcc编译,c++程序就用g++编译

2。gcc的基本用法
gcc test.c这样将编译出一个名为a.out的程序
gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名

3。为什么会出现undefined reference to 'xxxxx'错误?
首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本
身没有问题,是你用编译器编译时参数用得不对,你没

有指定链接程序要用到得库,比如你的程序里用到了一些数学函数,那么你就要在编译
参数里指定程序要链接数学库,方法是在编译命令行里加入-lm。

4。-l参数和-L参数
-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,那么库名跟真正的库文
件名有什么关系呢?
就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的
头lib和尾.so去掉就是库名了。

好了现在我们知道怎么得到库名了,比如我们自已要用到一个第三方提供的库名字叫lib
test.so,那么我们只要把libtest.so拷贝到/usr/lib

里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里
的函数,我们还需要与libtest.so配套的头文件)。

放在/lib/usr/lib/usr/local/lib里的库直接用-l参数就能链接了,但如果库文件
没放在这三个目录里,而是放在其他目录里,这时我们

转载于:https://www.cnblogs.com/orangezs/p/8378737.html

gcc,cc,g++,CC的区别相关推荐

  1. linux下g++和gcc_Linux中gcc和g ++有什么区别?

    linux下g++和gcc gcc和g ++之间的区别 (Difference between gcc and g++) Both are the compilers in Linux to comp ...

  2. gcc和g++有什么区别?

    来源 | C语言中文网 发展至今,GCC 编译器已经更新至 V10 版本,其功能也由最初仅能编译 C 语言,扩增至可以编译多种编程语言,其中就包括 C++ . 除此之外,当下的 GCC 编译器还支持编 ...

  3. 【Linux】gcc和g++的区别

    gcc和g++编译器的区别 gcc 现在是 gnu 提供的一些编译器工具的集合(Gnu Compiler Collection),以前是gnu 组织提供的 c 编译器(Gnu C Compiler). ...

  4. 编译器cc、CC、gcc、g++区别

    编译器cc.CC.gcc.g++区别 看C语言经典教材<C程序设计语言>中,Linux下编译C代码用的是cc, 广为人知的C编译器的gcc, 还有CC.g++那么有啥差异呢 一.cc是Un ...

  5. cc、gcc、g++ 的区别和联系

    2018-02-24 创建人:Ruo_Xiao 邮箱:xclsoftware@163.com cc 是 Unix 系统的 C Compiler,在 linux 下一般连接到 gcc . gcc 的全称 ...

  6. cc、gcc、g++、CC的区别概括

    gcc是C编译器:g++是C++编译器:linux下cc一般是一个符号连接,指向gcc:gcc和g++都是GUN(组织)的编译器.而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Lin ...

  7. GCC编译器和CC编译器的区别

    以下内容源于网络资源的学习与整理,如有侵权请告知删除. 参考博客 Difference Between GCC and CC Compiler - Ask Any Difference Linux新手 ...

  8. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

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

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 机器算法学习那些事 目前(2020-09)GCC 编译器已经更新至 ...

最新文章

  1. 资源 | 吴恩达《机器学习训练秘籍》中文版58章节完整开源
  2. USB-Flash MX-程序员2004合订本
  3. python fastapi_Python|介绍一下我的新伙伴fastapi(一)
  4. Java8 Map中新增的方法使用总结
  5. cuda nvprof 输出结果的理解和优化空间
  6. mysql里b树_MySQL-B树/B+树
  7. python找到一行单词中最长的_在Python的给定列表中找到k个最长的单词
  8. 再次实践 MySQL chart - 每天5分钟玩转 Docker 容器技术(166)
  9. 2012-11-25学习笔记
  10. 正版操作系统下载大全
  11. xmpp 服务研究(二) prosody 创建账户
  12. python微控制器编程从零开始 开发板_TPYBOARD单片机开发板PYTHON语言控制单片机
  13. 微信小程序申请发布流程
  14. 软件测试三分钟自我介绍
  15. Pytorch grid_sample解析
  16. java压缩文件夹下所有文件
  17. Weka OneR 和 ZeroR 加深理解
  18. 腾讯云全站加速有哪些功能?有哪些优势?适用于什么场景?
  19. 在Docker容器中使用iptables时的最小权限的开启方法
  20. opentsdb 简易生动讲解

热门文章

  1. 和我一起写矩阵类(一)
  2. 目标检测系列(三)——SPPnet
  3. 为什么只有360公开支持华为系统,其他公司都不敢表态?
  4. linux lsm 程序加载钩函数,LSM在Linux中的实现方式
  5. GPU Gems2 - 4 分段缓冲(Segment Buffering)
  6. 马尔科夫链和马尔科夫链蒙特卡洛方法
  7. Tensor数据相关的运算、函数讲解及与numpy区别
  8. OAuth2.0 知多少
  9. SpringBoot零基础入门指南--搭建Springboot然后能够在浏览器返回数据
  10. java 将一个非空文件夹拷贝到另一个地方