16.4. 在 GCC 中使用静态库


静态库可用作包含对象文件的存档。链接后,它们将成为生成的可执行文件的一部分。

注意

由于各种原因,红帽不建议使用静态链接。请参阅 第 16.2 节 “静态和动态链接”。仅在需要时才使用静态链接,特别是红帽提供的库。

先决条件

注意

大多数作为 Red Hat Enterprise Linux 一部分的库都只支持动态链接。以下步骤仅适用于 没有为 动态链接启用的库。请参阅 第 16.6 节 “在 GCC 中使用 Both Static 和 Dynamic Libraries”

步骤

要从源和对象文件中链接程序,请添加静态链接库 foo,名为 libfoo.a

  1. 更改到包含您代码的目录。
  2. 使用 foo 库的标头编译程序源文件:

    $ gcc ... -Iheader_path -c ...

    使用包含 foo 库的标头文件的目录路径替换 header_path

  3. 将程序与 foo 库链接:

    $ gcc ... -Llibrary_path -lfoo ...

    使用包含文件 libfoo.a 的目录的路径替换 library_path

  4. 要执行该程序,请运行:

    $ ./program
小心

静态 链接相关的静态 GCC 选项禁止所有动态链接。相反,请使用 -Wl、-Bstatic-Wl,-Bdynamic 选项更精确地控制链接器行为。请参阅 第 16.6 节 “在 GCC 中使用 Both Static 和 Dynamic Libraries”

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.