Linux开发系统导引

1.应用程序

通常在/usr/bin 及/opt目录下  

系统管理员一般会用/opt   /usr/local目录 来分类厂商提供及后续添加的文件与系统本身提供的应用程序


2.头文件

一般放在 /usr/include目录下

调用C语言编译器编译时,可以使用-I标志来包含在子目录或非标准位置的头文件,如

$ gcc -o hello -L/usr/myinclude hello.c  他指定编译器不仅的标准头文件目录也在 /usr/myinclude下查找helo.c中所包含的头文件


3.库文件

库时一组预先编译好的函数的集合,这些函数都是按照可重用的标准写的.标准库文件一般在/lib /usr/lib下

C语言编译器默认情况下只会搜索标准C语言库

库文件的命名要遵循命名规范并且需要在命令行中明确指定,库文件命名: lib+库名+.+库类型(a/so)

.a 传统的静态函数库

.so代表共享函数库

$ gcc -o hello hello.c /usr/lib/libm.a

$ gcc -o hello hello.c -lm   -lm标准另一个好处如果有共享库编译器会自动选择共享库

$ gcc -o hello -L/usr/mylib hello.c -lmylib  用/usr/mylib目录下的libmylib库来编译和链接hello.c文件


函数库时一组准备好使用的状态的目标文件,当程序需要使用函数库的某个函数时,他包含一个声明该函数的文件头,编译器和链接器负责将程序代码和函数结合在一起组成一个单独的可执行文件,必须用-l指明标准库外还需要什么库.


静态库:

也称作归档文件,惯例是以.a结尾,


动态库:

有个缺点,当你同时运行多个应用程序并且他们都使用同一个函数库的函数时,内存中会存在同一函数的多个副本.并且程序本省也有多个同样的副本,比较耗资源和磁盘空间.

$ ldd program 查看可执行文件所依赖的so库

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值