17.3. 使用 GCC 创建动态库


通过更轻松地更新库代码,动态链接的库(共享对象)允许通过代码重复使用和增强安全性。这部分论述了从源构建和安装动态库的步骤。

先决条件

步骤

  1. 使用库源更改到 目录。
  2. 使用独立于位置的代码选项 -fPIC 将每个源文件编译到对象文件中:

    $ gcc ... -c -fPIC some_file.c ...

    对象文件具有与原始源代码文件相同的文件名,但它们的扩展名是 .o

  3. 从对象文件链接共享库:

    $ gcc -shared -o libfoo.so.x.y -Wl,-soname,libfoo.so.x some_file.o ...

    使用的主版本号是 X,次版本号为 Y。

  4. libfoo.so.x.y 文件复制到系统动态链路器可以找到它的适当位置。在 Red Hat Enterprise Linux 中,库的目录是 /usr/lib64

    # cp libfoo.so.x.y /usr/lib64

    请注意,您需要 root 权限才能操作此目录中的文件。

  5. 为 soname 机制创建符号链接结构:

    # ln -s libfoo.so.x.y libfoo.so.x
    # ln -s libfoo.so.x libfoo.so

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.