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
显示在编译过程的每一步中用到的命令
相关推荐
在使用GCC编译器时,通常会涉及到一系列的参数,这些参数有助于控制编译过程的不同阶段,以及优化生成的代码。以下是针对这些参数的详细解释: 1. **预处理阶段**:在这一阶段,编译器执行`-E`参数,处理`#include`...
gcc 常用参数详解 gcc 是 GNU 编译器集合中的 C 和 C++ 编译器,它提供了许多参数来控制编译过程。在本文中,我们将详细介绍 gcc 的一些常用参数。 -x language 该参数用于指定文件所使用的语言,使后缀名无效。...
为了更好地使用 arm-linux-gcc 编译器,需要了解其编译过程和常用参数。 arm-linux-gcc 编译过程分为四个阶段:预处理(Pre-Processing)、编译(Compiling)、汇编(Assembling)和链接(Linking)。在使用 GCC ...
### gcc常用参数详解 ...通过以上对GCC参数的详细介绍,我们可以更好地理解如何使用GCC来进行高效的编译和链接工作。无论是对于初学者还是高级用户来说,掌握这些参数都能极大地提高开发效率和代码质量。
### arm-linux-gcc 常用参数讲解 #### 概述 `arm-linux-gcc` 是一种用于开发针对 ARM 架构 Linux 平台应用程序的交叉编译器。本文档旨在详细阐述 `arm-linux-gcc` 的一些常用参数及其使用场景,帮助开发者更好地...
gcc参数详解 gcc参数详解 gcc参数详解 gcc参数详解
在日常开发中,我们常常会遇到一些常用的选项参数来控制GCC的行为,以下是一些关键参数的详细解释: 1. `-c`:这个选项告诉GCC仅编译源代码,生成相应的对象文件(.o文件),但不进行链接步骤。这对于构建大型项目...
GCC 编译器参数详解 GCC 编译器是 GNU 项目中的一部分,是一个功能强大且广泛使用的编译器。GCC 编译器提供了多种参数来控制编译过程,这些参数可以根据需要进行选择和组合,以满足不同的编译需求。 1. 语言选择...
本文将详细介绍`arm-linux-gcc`的一些常用参数及其作用,帮助理解编译过程的不同阶段,并提供如何控制编译行为的指导。 1. **编译过程**: - **预处理(Pre-Processing)**:此阶段处理`#include`指令,展开宏定义,...
gcc编译参数的顺序问题 gcc编译参数的顺序问题 gcc编译参数的顺序问题
在实际工作中,掌握一些常用的GCC编译选项参数,能够极大地提高开发效率和代码质量。** ### **1. `-c` 参数** 该选项告诉GCC只编译源代码,不链接生成可执行文件。这通常用于预编译头文件或在大型项目中分步骤构建...
GCC 参数详解 GCC(GNU Compiler Collection)是 GNU 开源项目中的一部分,作为一个功能强大且广泛使用的编译器,GCC 对于 C 和 C++ 等语言的编译提供了强大的支持。GCC 参数详解是 GCC 在执行编译工作时的步骤,...
**GCC参数大全资料合集** GCC(GNU Compiler Collection),是GNU项目的一部分,是一个开源的、跨平台的编译器套件,支持C、C++、Objective-C、Fortran、Ada和Go等多种编程语言。它提供了丰富的编译选项,使得...
手册是学习GCC的重要资源,其中详细解释了GCC的各种参数和选项,这些参数可以影响编译过程,如优化级别、错误警告、输出文件名、目标平台等。例如,"-O2"是常用的优化选项,用于提高代码运行效率;"-Wall"则会开启...
### 常用参数讲解 gcc #### 概述 在Linux环境下,`gcc`(GNU Compiler Collection)作为一套广泛使用的编译工具集,为开发者提供了丰富的功能与灵活性。特别是对于那些需要跨平台编译的应用场景,`gcc`更是不可或...
本文将深入探讨GCC/G++的常用命令及其应用。 1. **编译基本命令:**`gcc [选项] [源文件] -o [目标文件]` - `gcc`或`g++`是启动编译器的命令。 - `-o`参数指定输出的可执行文件名。 - 源文件是包含C或C++代码的`...
### gcc参数详解:深入理解GCC编译器的高级配置 GCC(GNU Compiler Collection)作为一款功能强大的开源编译器集合,被广泛应用于多种操作系统和编程语言的开发中。本文将根据给定的“gcc参数详解”文件内容,深入...
### Linux GCC常用命令知识点详解 #### 一、GCC概述 GCC (GNU Compiler Collection) 是一套由 GNU 开发的编译工具集,最初是为了支持 C 语言的编译工作而设计的。随着时间的发展,GCC 已经扩展支持了多种编程语言,...
GCC 参数介绍 GCC(GNU Compiler Collection)是一套功能强大且广泛使用的编译器套件,它支持多种编程语言,包括 C、C++、Objective-C、Fortran 等。GCC 编译器提供了许多参数选项,可以根据需要进行自定义,以提高...