函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。
程序1: hello.h
以下是代码片段:
#ifndef HELLO_H
#define HELLO_H
void hello(const char
*name);
#endif //HELLO_H
程序2: hello.c
以下是代码片段:
#include
void hello(const char *name)
{
printf("Hello %s!\n", name);
}
程序3: main.c
以下是代码片段:
#include "hello.h"
int main()
{
hello("everyone");
return 0;
}
无论动态库还是静态库都需要用到.o文件来生成,先编译生成.o文件。
# gcc -c hello.c
1:创建静态库
静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。
以下是代码片段:
# ar cr libmyhello.a hello.o
使用静态库:只需要在你的源程序中加入包含你所需要使用到的函数的声明(即包含头文件),然后在gcc生成目标文件时候指明静态库就OK了(除非你包含的头文件在/usr/include,库文件在标准库/usr/lib,/lib下,否则你得显示指明他们的路径)
以下是代码片段:
# gcc -o hello main.c -L. -lmyhello
# ./hello
Hello everyone!
删除静态库文件运行./hello,程序正常运行,说明静态库公用函数已经链接到目标文件。
2: 利用.o文件创建动态库
动态库文件扩展名为.so。
以下是代码片段:
# gcc -shared -fPCI -o libmyhello.so hello.o
动态库的使用与静态库使用方式一样
以下是代码片段:
# gcc -o hello main.c -L. -lmyhello
# ./hello
./hello: error while loading shared libraries: libmyhello.so: cannot open
shared object file: No such file or directory
哦!出错了。快看看错误提示,原来是找不到动态库文件libmyhello.so。程序在运行时,会在/usr/lib和/lib等目录中查找需要的动态库文件。若找到,则载入动态库,否则将提示类似上述错误而终止程序运行。
如何找到生成的动态库有3种方式:
1)把库拷贝到/usr/lib和/lib目录下。
(2)在LD_LIBRARY_PATH环境变量中加上库所在路径。
例如动态库libhello.so在/home/example/lib目录下:
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/example/lib
(3)
修改/etc/ld.so.conf文件,把库所在的路径加到文件末尾,并执行ldconfig刷新。这样,加入的目录下的所有库文件都可见。
相关推荐
Linux 平台下创建和使用用户函数库是指在 Linux 操作系统下创建和使用用户定义的函数库。函数库是一种预编译的代码集合,包含了一个或多个函数,可以在不同的应用程序中被调用和使用。 Linux 下有关函数库的概念 ...
在Linux系统中,函数库是开发者进行程序设计的重要资源,它们提供了一系列预定义的函数,使得程序员能够方便地实现各种复杂的功能,而无需从零开始编写代码。本篇将主要探讨Linux下的C语言函数库,因为C语言是Linux...
Linux 操作系统中,popen 函数是一个常用的函数,用于执行 shell 命令并得到执行结果。然而,Linux 库提供的 popen 函数却有两个致命的缺陷。本文将分析这两个缺陷产生的原因,并给出改造方案。 popen 函数的使用...
在Linux操作系统中,C函数库是开发者进行系统级编程和应用程序开发的重要工具。"doc"通常指的是文档,这里指的是关于Linux C函数库的文档资料。本文将深入探讨Linux C函数库的基本概念、重要性以及一些关键函数,...
在IT领域,Linux操作系统与C语言的结合是程序员们日常工作中不可或缺的一部分。C语言作为底层编程的首选,其高效、灵活的特点使得它在Linux系统开发中占有重要地位。本资源"Linux (C语言)函数库详解词典"提供了...
在Linux环境中,除了标准C库之外,还有许多与操作系统紧密相关的库函数,例如在中定义的POSIX函数,它们提供了与系统交互的能力,如打开、读写文件、创建进程等。另外,、等头文件包含的函数则用于文件状态获取、...
Linux操作系统编程是IT领域中的重要组成部分,特别是在服务器管理和软件开发中。这个压缩包包含了一系列关于Linux操作系统编程的PDF教程,涵盖了多个关键主题,对于想要深入理解Linux系统编程的初学者和开发者来说,...
在IT领域,Linux操作系统因其开源、稳定和高效的特点,在服务器端和嵌入式系统中广泛应用。函数库,尤其是C语言的库,是Linux系统中不可或缺的一部分,它们为开发者提供了丰富的功能接口,使得软件开发变得更加便捷...
在Linux操作系统中,C语言是核心开发语言,其丰富的函数库为程序员提供了强大的功能支持。"Linux_C函数库手册"是一份集中的资源,旨在帮助开发者理解和使用这些函数。手册通常包含详细的函数介绍、参数说明、返回值...
Linux操作系统则是开源的、基于Unix的系统,开发者可以深入系统层面进行定制和优化,因此C语言是Linux开发的首选语言。 Linux C函数库,也称为GNU C Library,通常被称为glibc,它是Linux系统中C编程的标准库。它...
#### 描述:Linux系统调用和C函数库(1).pdf,希望对你有所帮助 文档提供了关于Linux系统调用和C函数库的基本知识,旨在帮助读者更好地理解和应用这些核心概念。 #### 标签:Linux 系统调用 C函数库 文档围绕Linux...
在Linux操作系统中,C函数库,也称为C标准库,是C编程语言不可或缺的一部分。它提供了大量的函数,供程序员在开发应用程序时使用,以实现各种常见的任务,如输入/输出操作、内存管理、字符串处理、数学运算等。本文...
linux操作系统,[Linux电子书合集],Linux 系统命令及其使用详解(大全),Linux_C_函数库,Linux_操作系统-基础操作-教学,linux必读----高手必经之路,Linux必学的60个命令v1.0.1,linux编程基础,Linux操作系统快速...
本文将详细介绍Linux中C语言函数库中的字符操作函数和字符串操作函数,帮助开发者更好地理解和应用这些基础但重要的函数。 #### 二、字符操作函数 在Linux下的C语言编程中,字符操作函数主要用于单个字符的处理。...
《Linux C函数库中文手册》是一本针对Linux操作系统下C语言编程的重要参考资料,它详尽地阐述了在Linux环境中常用C函数的用法,并且配备了丰富的实例,便于读者理解和掌握。这本书采用CHM(Microsoft Compiled ...
Linux C函数库,通常指的是GNU C Library,也称为glibc,是Linux操作系统中核心的C编程接口。这个库为开发者提供了大量的系统调用和标准C库函数,使得编写高效的、跨平台的C语言程序成为可能。Linux C函数库参考手册...
在Linux环境下进行C语言开发,掌握一套全面的函数库参考手册是至关重要的。这份手册不仅提供了C语言在Linux系统中的核心功能与应用指南,还深入介绍了如何利用这些函数来优化程序性能、处理文件I/O、网络通信、内存...
在Linux操作系统中,高级编程涉及对系统调用、C函数库和C++标准库的深入理解和熟练运用。本文将详细探讨Linux环境下C和C++函数库的重要知识点,以及如何利用这些知识进行高效的程序开发。 首先,Linux C函数库,也...