gcc,cc,g++,CC的区别

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生实践之 RSocket 从入门到落地:Servlet vs RSocket

技术实践的作用在于:除了用于构建业务,也是为了验证某项技术或框架是否值得大规模推广。 本期开始,我们推出《RSocket 从入门到落地》系列文章,通过实例和对比来介绍RSocket。主要围绕RSocket如何实现Polyglot RPC、Service Regis…

制作.sens数据集跑通bundlefusion

1. 主要参考这篇博客实现 https://blog.csdn.net/Wuzebiao2016/article/details/94426905 2. 首先就是将自己采集的RGBD图像的保存格式向Bundlefusion需要的格式对齐,如彩色图的命名格式是frame-000000.color.png,深度图的命名规则是frame-000000.depth…

用ul li实现边框重合并附带鼠标经过效果

边框重合这个效果并不难&#xff0c;只是我们没有真正的动手做过而已&#xff0c;下面让我们来谈谈用ul li如何实现边框重合&#xff0c;并附带鼠标经过效果 1 <!DOCTYPE html>2 <html lang"zh-CN">3 4 <head>5 <title></title>6 …

hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法

https://www.cnblogs.com/wujin/p/6051768.html转载于:https://www.cnblogs.com/0xcafedaddy/p/8385476.html

python之moviepy库的安装与使用

目的&#xff1a;因为需要保存一个大大的.mp4视频&#xff0c;以防过程中设备出现异常导致整个长长的视频无法正常保存&#xff0c;所以采用分段保存视频的方式&#xff0c;每500帧保存一段&#xff0c;然后再将视频合到一起&#xff0e;最近刚开始学习python,发现python真的很…

oracle 之 安装后pl/sql登录报ora-12154

这个问题一开始困扰了很久。 查的资料是复制一小段代码到tnsnames.ora中 SID名 (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST localhost)(PORT 1522)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME SID名) ) 注意SID名前面不能有任何其他字符&…

如何避免表单重复提交

客户端方案 禁掉提交按钮。 表单提交后使用Javascript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题&#xff0c;如果客户端把Javascript给禁止掉&#xff0c;这种方法就无效了。 使用Post/Redirect/Get模式 在提交后执行页面重定向&#xff0c;这就是所…

十六进制转八进制

【问题描述】 问题描述 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n &#xff08;1<n<10&#xff09;。 接下来n行&#xff0c;每行一个由0~9、大写字母A~F组成的字符串&#xff0c;表示要转换的十六进制正整数&…

使用iai_kinect2标定kinectV2相机

实验背景&#xff1a;因为需要制作bundlefusion需要的数据集&#xff0c;所以需要使用kinectV2相机获取rgbd图像&#xff0c;年前的时候在我的笔记本上安装了libfreenect2库和iai_kinect2&#xff0c;标定过一次kinecv2相机&#xff0c;然后使用kinectv2相机实时获取的图像实现…

tar只解压tar包中某个文件

如果tar包很大&#xff0c;而只想解压出其中某个文件。方法如下&#xff1a; 只想解压出Redis-1.972.tar 中的Changes文件&#xff0c;来查看有哪些更改。 [rootuplooking]# tar -tf Redis-1.972.tar Redis-1.972…

扎克伯格的中文夜:想要成功就不能放弃

10月23日消息。虽然并不太流畅。昨天马克•扎克伯格依旧用中文与清华经管学院主持人完毕了一场对话&#xff1b;在对话中&#xff0c;这位Facebook创始人兼首席运行官阐述了自己学习中文的原因&#xff1a;想要和太太&#xff08;普里西拉•陈&#xff09;的家人交流&#xff1…

python将ros下bag文件的所有topic解析为csv格式

背景&#xff1a;最近在制作kimera的数据集&#xff0c;尤其是运行semantic模块所需要的bag文件中有很多topic&#xff0c;但是很多不知道topic中装的是什么数据&#xff0c;及其格式&#xff0c;所以我就想着怎么可以将bag中的topic都解析数来&#xff0c;这样就能知道bag中都…

十九. Python基础(19)--异常

十九. Python基础(19)--异常 1 ● 捕获异常 if VS异常处理: if是预防异常出现, 异常处理是处理异常出现 异常处理一般格式: try: <...............> #可能得到异常的语句 except <.......>: #捕获是哪种异常 <...............> #出现异常的处理方…

洛谷1052——过河(DP+状态压缩)

题目描述 在河上有一座独木桥&#xff0c;一只青蛙想沿着独木桥从河的一侧跳到另一侧。在桥上有一些石子&#xff0c;青蛙很讨厌踩在这些石子上。由于桥的长度和青蛙一次跳过的距离都是正整数&#xff0c;我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点&#xff1a;0…

Tensorflow学习教程------tfrecords数据格式生成与读取

首先是生成tfrecords格式的数据&#xff0c;具体代码如下&#xff1a; #coding:utf-8import os import tensorflow as tf from PIL import Imagecwd os.getcwd() 此处我加载的数据目录如下&#xff1a; bt -- 14018.jpg14019.jpg14020.jpgnbt -- 1_ddd.jpg1_dsdfs.jpg1_dfd.…

ROS获取KinectV2相机的彩色图和深度图并制作bundlefusion需要的数据集

背景&#xff1a; 最近在研究BundleFusion&#xff0c;跑通官方数据集后&#xff0c;就想着制作自己的数据集来运行bundlefusion&#xff0e;KinectV2相机可直接获取的图像的分辨率分为三个HD 1920x1080, QHD: 960X540&#xff0c;SD: 512x424.我选择是中间的分辨率qhd. 录制…

Linux下配置tomcat+apr+native应对高并发

摘要&#xff1a;在慢速网络上Tomcat线程数开到300以上的水平&#xff0c;不配APR&#xff0c;基本上300个线程狠快就会用满&#xff0c;以后的请求就只好等待。但是配上APR之后&#xff0c;Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输…

Firefox 66 将阻止自动播放音频和视频

百度智能云 云生态狂欢季 热门云产品1折起>>> 当我们点击一个链接&#xff0c;或者打开新的浏览器选项卡时&#xff0c;浏览器就开始自动播放视频和声音&#xff0c;这是一件十分烦人的事。Chrome 浏览器早已对这些行为下手了&#xff0c;现在 Firefox 也明确表示要…

Windows 10 关闭Hyper-V

以管理员身份运行命令提示符 关闭 bcdedit /set hypervisorlaunchtype off 启用 bcdedit / set hypervisorlaunchtype auto 禁用DG 转载于:https://www.cnblogs.com/Robbery/p/8397767.html

ROS下获取kinectv2相机的仿照TUM数据集格式的彩色图和深度图

准备工作&#xff1a; &#xff11;&#xff0e; ubuntu16.04上安装iai-kinect2, 2. 运行roslaunch kinect2_bridge kinect2_bridge.launch, 3. 运行 rosrun save_rgbd_from_kinect2 save_rgbd_from_kinect2,开始保存图像&#xff0e; 这个保存kinectV2相机的代码如下&…