gcc
来源:互联网 发布:win7时间校准软件 编辑:程序博客网 时间:2024/06/01 12:23
GCC的C编译器是gcc,其命令格式为:
gcc [options] file...
编译示例:
$gcc hello.c
$gcc –o test hello.c
选项-o可以使编译程序生成指定文件名
-c选项用于生成目标文件,示例:
$gcc –c hello.c
编译多个文件,示例:
$gcc –c file1.c file2.c file3.c
多文件编译
1.源文件string.c
2.源文件main.c
3.编译运行
$gcc -o test string.c main.c
预处理
预处理过程将源文件中的头文件包含进源文件中,并且将文件中定义的宏进行扩展
选项-E告诉编译器进行预编译操作,示例:
$gcc –E string.c
生成汇编
选项-S生成汇编语言,示例:
$gcc –S string.c
静态链接库和动态链接库
静态库是obj文件的一个集合。
静态库以.a为后缀
由ar生成
语法:
ar 库文件 obj文件1 obj文件2
示例:
将string.o打包为库文件libstr.a的命令为
$ar –rcs libstr.a string.o
使用静态链接库
示例:
$gcc –o test main.c libstr.a
动态链接库
动态链接库是程序运行时加载的库
别名:lib+库名+.so
真名:别名+小版本号+发行版本
链接名:链接时使用
1.生成动态链接库
-fPIC选项或者-fpic选项
示例:
$gcc –shared –Wl,-soname,libstr.so –o libstr.so.1 string.c
2.动态链接库的配置
指定系统的动态链接库搜索的路径
配置文件/etc/ld.so.conf
3.动态链接库管理命令
4.使用动态链接库
使用方式:-l库名
示例:
$gcc –o test main.c –L./ -lstr
动态加载库
1.打开动态库dlopen()
函数dlopen()按照用户指定的方式打开动态链接库
void * dlopen(const char *filename, int flag);
2.获得函数指针dlsym()
函数dlsym()可以获得动态链接库中指定函数的指针
void * dlsym(void *handle, char *symbol);
3.使用动态加载库的一个例子
$gcc –o testdl main.c libstr.so –ldl
环境搭建
判断是否安装:
$which gcc
安装gcc
$apt-get install gcc
- gcc/
- gcc
- gcc
- gcc
- GCC
- gcc
- GCC
- gcc
- gcc
- GCC
- gcc
- Gcc
- gcc
- gcc
- GCC
- gcc
- gcc
- gcc
- 实验2.4 运用静态链表实现对数据的基本操作
- GPIO工作原理(stm32F10x)
- win7和ubuntu下搭建VPS和shadowsock
- angular排序
- OkHttp的Get和Post
- gcc
- 编程计算并输出半径r=5.3的圆的半径的周长与面积
- JAVA循环输出等腰三角形
- Python: NumPy中的多维数组ndarray
- 华迈SDK遇坑:java.lang.UnsatisfiedLinkError: No implementation found for int com.huamaitel.api.HMJniInter
- 看图说话之左式堆(优先队列)——原理解析及java实现
- 网络获取图片实现无线自动轮播
- zookeeper之 zkServer.sh命令、zkCli.sh命令、四字命令
- 杭州和上海的比较