第一章 入门
来源:互联网 发布:a8 μcos linux stm32 编辑:程序博客网 时间:2024/05/16 18:51
应用程序
/usr/bin:系统为正常使用提供的程序
/usr/local/bin,/opt:系统管理员存放的应用程序
头文件
C语言的头文件几乎都放在/usr/include
依赖特定Linux版本的头文件放在/usr/include/sys和/usr/include/linux
库文件
标准库文件存在/lib和/usr/lib
库文件的名字以lib开头,随后的部分指明什么库。文件名最后以.开始,然后给出库文件的类型:
.a表示静态函数库
.so表示动态函数库
通过给出完整库文件路径名或-l标志告诉编译器要搜索的库文件
gcc -o fred fred.c /usr/lib/libm.a
或
gcc -o fred fred.c -lm
-lm表示标准库(/usr/lib)中名为libm.a的函数库。如果是动态库,则自动选择动态库。
静态库
举例:
为两个函数fred和bill创建各自的源文件
//fred.c
#include<stdio.h>
void fred(int arg)
{
printf("fred:we passed %d\n",arg);
}
//bill.c
#include<stdio.h>
void bill(char *arg)
{
printf("bill:we passed %s\n",arg);
}
编译这两个文件
gcc -c fred.c bill.c
分别产生fred.o和bill.o文件
创建一个头文件lib.h,头文件声明库文件中的函数
//lib.h
void bill(char *);
void fred(int);
创建主程序program.c,他包含库的头文件并且调用库文件中的一个函数
//program.c
#include<stdlib.h>
#include "lib.h"
int main()
{
bill("Hello world");
exit(0);
}
创建目标文件(program.o)
gcc -c program.c
先为编译器显式指定目标文件,然后要求编译器编译你的文件并与先前编译好的目标文件链接,产生可执行文件program。
gcc -o program program.o bill.o
执行文件
./program
bill:we passed Hello world
创建库文件
将bill.o fred.o归并到一个文档中,使用ar命令
ar crv libfoo.a bill.o fred.o
a - bill.o
a - fred.o
调用函数库
gcc -o program program.o libfoo.a
注意:gcc -o filename filename.c表示编译并链接,生成filename可执行文件,gcc -c filename.c表示将filename.c进行编译,但不链接。生成filename.o文件
- 第一章 入门
- 第一章 入门
- 第一章 入门
- 第一章 入门
- 第一章 入门
- 第一章 入门
- 第一章 入门
- 第一章 - 互连网入门
- PLSQL入门第一章
- 第一章:XML快速入门
- 第一章 PDM入门知识
- 第一章 快速入门
- 第一章 快速入门
- 第一章 C#入门基础
- 第一章:数据结构入门
- 第一章:快速入门
- 第一章 快速入门
- 第一章:快速入门
- 第32题 最长匹配括号
- SLAM 介绍
- 安卓App热补丁动态修复技术介绍
- caffe绘制训练过程的loss和accuracy曲线
- 博客园公式编辑相关
- 第一章 入门
- 第二章 shell的语法
- (三)java字符串
- RESTful API 设计指南
- Android Studio 里面的引用第三方库总结,以及compile、provided使用
- (四)函数的参数传递——值传递
- Qt:QML生成翻译中间文件ts
- Opencv 2.4.9在Ubuntu下的配置安装
- (五)final修饰符