gcc常用参数,备忘

gcc常用参数,备忘收藏

1. 头文件
象conio.h应该变成curses.h

2. 没有itoa函数
itoa?不对吧,标准C/C++里根本没有这个函数。即使在Windows平台下某些编译器提供了该函数[3],没有任何移植性不说,还只能解决int类型(也许其他函数还可以解决long、unsigned long等类型),浮点类型又怎么办?当然,办法还是有,那就是:sprintf。

char s[100];
sprintf(s, "%f", 123.123456);

3. 关于sqrt,sin和cos函数
就算是引入math.h头文件,也不会找到sqrt,sin和cos函数。应该用链接库来解决。
有时候我们使用了某个函数,但是我们不知道库的名字,这个时候怎么办呢?很抱歉,对于这个问题我也不知道答案,我只有一个傻办法.首先, 我到标准库路径下面去找看看有没有和我用的函数相关的库,我就这样找到了线程(thread)函数的库文件(libpthread.a). 当然,如果找不到,只有一个笨方法.比如我要找sin这个函数所在的库. 就只好用 nm -o /lib/*.so|grep sin>~/sin 命令,然后看~/sin文件,到那里面去找了. 在sin文件当中,我会找到这样的一行libm-2.1.2.so:00009fa0 W sin 这样我就知道了sin在 libm-2.1.2.so库里面,我用 -lm选项就可以了(去掉前面的lib和后面的版本标志,就剩下m了所以是 -lm).

4. Makefile出现missing separator的错误
原因是目标声明行下面的命令行必须用Tab键分开(而不是空格)

PG: PG.o
[ Tab键 ]gcc -o PG -O -O2 -lm /lib/ld-2.2.93.so PG.o
PG.o: PG.c pointgroup.h
[ Tab键 ]gcc -c -O -O2 PG.c
clean:
[ Tab键 ]rm -f *.o

5. 注意文件的DOS格式字符
调试的时候应该注意文件可能有DOS格式字符,必须先用如下命令去掉文件中的DOS格式字符:
tr -d <file> tmp_file
mv tmp_file <file>

附:
*******************************************************
gcc 常用命令行列表 
*******************************************************
http://www.chinaunix.net 作者:wayne168  发表于:2003-04-19 16:02:55

-o FILE 
指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,缺省文件名是a.out.

-c 
只编译不链接

-DFOO=BAR 
在命令行定义预处理宏FOO,其值为BAR

-IDIRNAME 
将DIRNAME加入到头文件的搜索目录列表中

-LDIRNAME 
将DIRNAME加入到库文件的搜索目录列表中,缺省情况下gcc 只链接共享库

-static 
链接静态库,即执行静态链接

-lFOO 
链接名为libFOO的函数库

-g 
在可执行程序中包含标准调试信息

-ggdb 
在可执行程序中包含只有GNU debugger才能使别的达两条是信息

-O 
优化编译过的代码

-ON 
指定代码优化的级别为N,o<=N<=3

-ansi 
支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与该标准有冲突的部分 
(但这一选项并不能保证生成ANSI兼容的代码)

-pedantic 
允许发出ANSI/ISO C标准所列出的所有警告

-pedantic -errors 
允许发出ANSI/ISO C标准所列出的所有错误

-traditional 
支持Kernighan & Ritchie C语法(如用旧式语法定义函数);如果不知道这个选项的含义,也没有关系

-w  
关闭所有警告,建议不要使用此项

.Wall 
允许发出gcc能提供的所有有用的警告,也可以用-W(warning)来标记指定的警告

-werror 
把所有警告转换为错误,以在警告发生时中止编译过程                              

-MM 
输出一个make兼容的相关列表

-v 
显示在编译过程的每一步中用到的命令

MuJoCo 关节角速度记录与可视化,监控机械臂运动状态 1. 手动计算关节速度,其中timestep为仿真步长。2. 使用data.qvel直接取得关节速度。 阅读详情

相关推荐

GD32F4系列替换STM32F4,HAL库CAN初始化卡死?一个Sleep模式的坑与填坑实录

本文详细解析了GD32F4系列替换STM32F4时,HAL库CAN初始化卡死的问题根源——Sleep模式差异。通过对比两款芯片CAN控制器的默认状态,提出了不修改HAL库源码的解决方案,即在HAL_CAN_MspInit()中清除SLEEP位,并分析了该方法的优势。文章还提供了国产MCU替换的通用建议和调试技巧,帮助开发者高效解决问题。

weixin_29174013的博客 216

GCC下itoa函数的演变:itoa with GCC

简介 我怎么在GCC下使用itoa()?           啊,C/C++!itoa()不是ANSI C标准而且它不能在linux下的GCC中工作(至少我使用的版本是这样的)。这是很让人沮丧的,特别是当你想让代码跨平台可用时(Windows/Linux/Solaris或其他任何机器)。         很多人说可以使用sprintf来写字符串但是sprintf不满足itoa()的一

Sunshine的专栏 4914

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 953

itoa 头文件 linux,Linux中的itoa函数在哪里?

编辑:对不起,我应该记得,这台机器是非常标准,插入各种非标准的libc实现为学术目的;-)由于itoa()确实是非标准的,正如几个有用的注释者所提到的,最好使用sprintf(target_string,“%d”,source_int)或者更好的方式是snrintf(target_string,size_of_target_string_in_bytes ,“%d”,source_int)。我知道...

weixin_39984201的博客 4948

24位ADC的精度陷阱:为什么你的ADS1232实测性能不达标?

本文深入探讨了24位ADC芯片ADS1232在实际应用中性能不达标的原因,揭示了高精度ADC性能依赖周边电路设计的关键问题。通过分析电源系统、参考电压稳定性、PCB布局等常见陷阱,提供了优化方案和调试技巧,帮助工程师充分发挥ADS1232的潜力,实现接近理论值的测量精度。

weixin_28285943的博客 405

SAPABAP金色传说:关于导入和导出Excel时反复弹窗提示 SAP GUI安全性问题的解决方法

文章目录前言一、提示的到底是什么?二、关闭SAP GUI安全提示的步骤1.设置位置 前言 如果你在SAP中,经常需要将数据导出Excel,或者使用Excel进行批导数据,那么你对下面这个频繁出现的弹窗提示一定不陌生! 系统试图创建文件 C:\Users\15265\Desktop\EXPORT.XLSX 于目录 C:\Users\15265\Desktop\ 是否要授权修改父目录及其所有子目录? 不管你是不是选的记住我的决定,它必出!就很烦!那如何处理才能关闭呢? 提示:以下是本篇文章正文内容,看完快

Easystudios博客 1万+

对itoa函数的分析

在文章GCC下itoa函数的演变:itoa with GCC中提到了几种itoa函数的写法,其中我觉得下面这个是最容易理解的方法: /** * Ansi C "itoa" based on Kernighan & Ritchie's "Ansi C": */ void strreverse(char* begin, char* end) { char aux; while(end>beg

Sunshine的专栏 1552

tsmc12:via0的spacing问题(Via0.S.1)

12nm有个via0 grid的概念,除了普通fill外,基本都有via0这一层,这一层需要与via0 grid对齐。手动调整cell的位置比较容易出这个drc,比如修m0po max length drc时。解决方法1: 替换EEQV类型cell,这种类型是专门为了修via0 Grid问题存在的。更多学习内容请关注「拾陆楼」知识星球。解决方法2: 翻转或移动。

m0_61544122的博客 1114

【C语言标准库函数】三角函数

本文全面解析了C语言标准库<math.h>中的三角函数,包括正弦、余弦、正切及反三角函数的使用方法与实现原理。

byte轻骑兵的技术小窝 9260

【WRF-Urban数据集】中国60个城市的1 km分辨率城市冠层参数(UCPs)

中国60个城市的1 km分辨率城市冠层参数(UCPs)

WW、forever的博客 1063

最优化方法与数学建模

在本篇博客中,我们将探讨最优化方法在数学建模中的应用。首先,我们将介绍几种常见的最优化方法,如梯度下降、牛顿法和遗传算法。接着,我们将详细阐述这些方法的原理和算法。最后,我们将通过一个数学建模案例,展示如何使用Matlab实现这些方法。本文旨在为大家提供一个清晰的思路,以便更好地理解和应用最优化方法。

YOLO 438

ubuntu下gcc编程入门

准备工作 如果你还没装编译环境或自己不确定装没装,不妨先执行sudo apt-get install build-essential如果你需要编译 Fortran 程序,那么还需要安装 gfortran(或 g77)sudo apt-get install gfortran如果你已经了解一些 vim 的知识,而且想用它来编辑源代码,那么我们不妨装个完

xioahw的专栏 6602

弱小目标检测跟踪算法研究(5) 基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制

基于顶帽变换(Top_hat)算法的红外弱小目标检测之背景抑制1. 前言2. 顶帽变换(Top_hat)算法3. Matlab仿真4. 小结 1. 前言 红外图像中的弱小目标,目标属性包涵“弱"和“小’’两个方面:“弱’’是指目标在红外波长上所表现出来的强度,具体反映到所拍摄的红外图像上,就是指目标的灰度值;而“小’’是指目标的尺寸大小,也就是前面所述的成像面积很小,反映到红外图像上就是指目标所占的像素数目很少。 SPIE国际光学工程学会(Societyof Photo一0ptical Instrument

sinat_34897952的博客 5291

gcc 常用參數備忘錄

gcc 常用參數 -S C => Assembly -c 只編譯成o檔,不連結 -Wall 顯示警告訊息 -static 靜態連結 Library -I 引用外部 Header 檔的目錄(include)(-lhello libhello.so) -L引用外部Library 檔的目錄 -lm cos()等函數才需要 -O0 停用程式碼優化,預設O1 -g 產生debu...

weixin_30614587的博客 71

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【2013-12-17】C语言开发笔记:GDB

整理 Linux 下 GDB 调试 C 程序的常用命令备忘,涵盖编译加 -g 调试信息、设置断点、单步执行、查看变量值、打印调用堆栈等核心操作,以表格形式汇总命令速查。

cstriker1407的专栏 19

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

gcc/g++参数备忘

ubuntu20.04下,g++编译C++ 参数学习笔记

Happy__gai的博客 419

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【笔记】gcc、make、git常用命令备忘录

gcc、make常用命令备忘

幻蜗的笔记 949

GCC参数-备忘

自:http://www.cppblog.com/SEMAN/archive/2005/11/30/1440.html [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器...

终结者 165

gcc的编译选项总结

目录前言1 常用的编译选项2 不常用的编译选项2.1 -x3 ARM架构专有的编译选项 前言 本文用于记录我在学习和工作中遇到的各种GCC选项,虽然这些选项可以在GNU的手册上查到,不过这里做个总结,可以避免每次都去查手册,算是一个备忘吧。本文的内容会不断更新扩充。 1 常用的编译选项 选项 作用 -o 指定输出文件名称 -c 只预处理、编译、汇编,但不链接 2 不常用的编译选项 2.1 -x linker input file

gzxb1995的博客 7777

gcc备忘小TIP

-c,只编译,不链接成为可执行文件,变成XXX.o,编译器只是由输入的.c -S(注意是大写),把.c文件变成.s文件 链接不用参数,直接就可以。 -g,产生符号调试工具,用了之后就可以gdb调试啦! -O,对程序进行优化 -O2,比-O更好的优化 -O3,比-O2更好的优化 -Idirname,将dirname所指出的目录加入到程序头文件目录列表中,

yanapupa的博客 326

1~2--gcc依赖参数以及编译相关

gcc依赖参数 1 gcc的使用参数分类 通用参数:C语言参数、C++参数、Object C、语言无关、警告、调试、优化 编译过程参数:预编译、汇编、链接 机器依赖参数:比如代码需要在哪个平台上运行(ARM之类) 2 gcc的编译过程 (.c)源代码,宏展开 → 预编译文件(.i) 编译后 → 汇编文件(.s) 汇编后 → 目标文件,0101机器码(.o) 链接后 → 可执行文件 编译过程参...

TChainsmokers 564

linux中gcc指令,Linux GCC命令备忘

简介gcc(GNU-C-Compiler),但不局限于c语言,还支持C++\JAVA\OBJECIVE C\PASCAL等,变成了GNU Complier Collection,即GNU编译器家族。几个简单的指令gcc hello.c -o hello上面这句话在实际过程中分为4个步骤gcc -E hello.c -o hello.i //1、预处理gcc -S hello.i -o hello....

weixin_36149538的博客 266

Ubuntu 多版本 gcc 配置常用命令备忘

用的频率不高,总忘记具体参数。

eloudy的专栏 467

[转载+备忘]gcc g++ 参数

gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参数详解] -x language filename   设定

symware的专栏 416

GCC 使用备忘录--动态库(静态库备忘录)

GCC编译实战指南:从基础到进阶 本文系统介绍了GCC编译器的核心功能与实战技巧: 编译四阶段:预处理(.i)、编译(.s)、汇编(.o)、链接(可执行文件),揭示代码如何转化为机器指令。 核心选项速查:包括-o指定输出、-c分步编译、-L/-l链接库文件、-Wall警告提示、-g调试支持及-D宏定义等关键参数。 四大实战场景: 分步编译:通过-c生成目标文件,避免全量重编译; 库文件链接:结合-L指定路径与-l调用静态库; 调试优化:利用-Wall捕捉未使用变量,-g生成GDB调试符号; 条件编译:通过-

XINGXIN 419

GCC移植--后端流程

GCC移植--后端流程(自已小结备忘)GCC前端生成的中间代码是若干RTL,每条RTL的名字是MOV,ADD,JMP等,后端工作的每遍会遍历这些RTL。一 首先找标准名字的RTL。对每条RTL,如果它的名字是标准的MOV,ADD等,则会匹配相应的EXPAND或INSN模板。1 当匹配了EXPAND模板时,先执行其中的C语句(参数可能是每个OPERAND,机器模式等)。在这些C语句中,可以调用如下函

huyansoft的专栏 5102
上一篇: 请教关于标准C中findfirst()函数的用法!谢谢
下一篇: CC和gcc是一样的编译器吗?
mlxia
博客等级 码龄26年 28粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值