gcc简单命令记录
来源:互联网 发布:免费的fq软件 编辑:程序博客网 时间:2024/06/05 20:46
一CC编译程序过程分四个阶段1. 预处理(Pre-Processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Linking)二.简单编译命令我们以Hello world程序来开始我们的学习.代码如下:/* hello.c */#include <stdio.h>int main(void){printf ("Hello world!\n");r eturn 0;}1. 执行如下命令:$ gcc -o hello hello.c输出: Hello,world!2. 我们也可以分步编译如下:(1) $ gcc -E hello.c -o hello.i //预处理结束//这时候你看一下hello.i ,可以看到插进去了很多东西.(2) $ gcc -S hello.i//生成汇编代码后结束(3) $ gcc -c hello.c或者:$ gcc -c hello.c -o hello.o或者:$ gcc -c hello.i -o hello.o//编译结束//生成 hello.o文件(4) $ gcc hello.o -o hello.o或者:$ gcc -o hello hello.c//链接完毕,生成可执行代码3. 我们可以把几个文件一同编译生成同一个可执行文件.比如:一个工程有main.c foo.c def.c生成foo的可执行文件.编译命令如下:$ gcc -c main.c foo.c def.c -o foo或者:$ gcc -o foo main.c foo.c def.c三.库依赖函数库是一些头文件(.h)和库文件(.so或者.a)的集合.Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下,但并非绝对如此.因此GCC设有添加头文件和库文件的编译选项开关.1. 添加头文件:-I例如在/home/work/include/目录下有编译foo.c所需头文件def.h,为了让GCC能找到它们,就需要使用-I选项:$ gcc foo.c -I /home/work/include/def.h -o foo2. 添加库文件:-L例如在/home/work/lib/目录下有链接所需库文件libdef.so,为了让GCC能找到它们,就需要使用-L选项:$ gcc foo.c -L /home/work/lib -ldef.a -o foo说明:-l选项指示GCC去连接库文件libdef.so.Linux下的库文件命名有一个约定,即库文件以lib三个字母开头,因为所有的库文件都遵循这个约定,故在用-l选项指定链接的库文件名时可以省去lib三个字母.[题外语]Linux下的库文件分为动态链接库(.so文件)和静态链接库(.a文件).GCC默认为动态库优先,若想在动态库和静态库同时存在的时候链接静态库需要指明为-static选项.比如上例中如还有一个libdef.a而你想链接libdef.a时候命令如下:$ gcc foo.c -L /home/work/lib -static -ldef.a -o foo
0 0
- gcc简单命令记录
- 简单的GCC命令
- gcc 的一些命令记录
- 简单linux命令记录
- VIM简单命令记录
- git 简单命令记录
- gcc和gdb简单命令总结
- apt-get命令简单记录
- kafka常用简单命令记录
- vim操作命令简单记录
- GCC命令
- gcc 命令
- Gcc命令
- GCC命令
- gcc命令
- gcc命令
- gcc命令
- gcc命令
- Linux C编程的DEBUG宏
- hdu 5385 The path
- 【POJ 1260】Pearls
- 如何快速将vc++的类转换为c#/cli
- JSON格式注册登录查询byHttpClientDoPost
- gcc简单命令记录
- CodeForces-554B Ohana Cleans Up
- LeetCode(171) Excel Sheet Column Number
- Linux用户和用户组管理-用户管理命令passwd/usermod/chage/userdel/su***用户组管理命令
- File类,IO流练习题目
- C/C++/Java/C#/Python的内存管理机制整理
- IOS开发—Quartz 2D介绍
- 无题
- [持续更新]JavaScript学习笔记(三)