简单的GCC命令
来源:互联网 发布:用c语言求以内素数 编辑:程序博客网 时间:2024/05/22 17:11
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参数紧接着就是库名,那么库名跟真正的库文件名有什么关系呢?-lname,在连接时,装载名字为“libname.so”的函数库:-lm表示连接名为“libm.so”的数学函数库。就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了
好了现在我们知道怎么得到库名,当我们自已要用到一个第三方提供的库名字libtest.so,那么我们只要把libtest.so拷贝到/usr/lib里,编译时加上-ltest参数,我们就能用上libtest.so库了(当然要用libtest.so库里的函数,我们还需要与libtest.so配套的头文件)
放在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接了
参数-L的用途,比如常用的X11的库,它在/usr/X11R6/lib目录下,我们编译时就要用-L/usr/X11R6/lib -lX11参数,-L参数跟着的是库文件所在的目录名。再比如我们把libtest.so放在/aaa/bbb/ccc目录下,那链接参数就是-L/aaa/bbb/ccc -ltest
-include用来包含头文件,但一般情况下包含头文件都在源码里用#include xxxxxx实现,-include参数很少用。-I参数是用来指定头文件目录,/usr/include目录一般是不用指定的,gcc知道去那里找,但是如果头文件不在/usr/include里我们就要用-I参数指定了,比如头文件放在/myinclude目录里,那编译命令行就要加上-I/myinclude参数了,如果不加你会得到一个"xxxx.h: No such file or directory"的错误。-I参数可以用相对路径,比如头文件在当前目录,可以用-I.来指定。上面我们提到的--cflags参数就是用来生成-I参数的
6、-O参数
这是一个程序优化参数,一般用-O2就是,用来优化程序用的,比如gcc test.c -O2,优化得到的程序比没优化的要小,执行速度可能也有所提高
- 简单的GCC命令
- gcc简单命令记录
- gcc的命令大全
- 常用的gcc命令
- gcc的命令
- gcc 的一些命令
- gcc 的ar命令
- gcc命令的使用
- gcc的基本命令
- Linux的gcc命令
- gcc 的简单使用
- gcc的简单应用
- GCC的简单介绍
- gcc的简单使用
- 简单的GCC spinlock
- GCC的简单指令
- gcc的简单使用
- gcc的简单使用
- 5行代码怎么实现Hadoop的WordCount?
- 苹果语音
- java 构造函数(本例意在说明如果一个类里定义了构造函数,则系统不会再给定义默认的无参构造函数)
- 进程控制3 守护进程 华清远见-《嵌入式 Linux 应用程序开发标准教程》
- VS2010应用程序工程中文件的组成结构
- 简单的GCC命令
- GNS3 L2TP VPN实验详解
- String的split()方法
- 关于博客
- 推荐位排序修改内容排序失效的解决办法
- Iterator
- Java获取properties文件
- 【DeepLearning工具】Fedora下安装theano
- 【java基础】第十条总结-->重要