16.3. 在 GCC 中使用库


库是可在您的程序中重复使用的代码软件包。C 或 C++ 库由两个部分组成:

  • 库代码
  • 标头文件

使用库编译代码

标头文件描述库的接口:库中提供的函数和变量。编译代码需要标题文件中的信息。

通常,库的标题文件将放置在与您的应用代码不同的目录中。要告诉 GCC 标头文件的位置,请使用 -I 选项:

$ gcc ... -Iinclude_path ...

使用标头文件目录的实际路径替换 include_path

I 选项可 多次使用,以添加包含标题文件的多个目录。查找标头文件时,会在 -I 选项中按照其外观的顺序搜索这些目录。

使用库链接代码

当链接可执行文件时,您的应用程序对象代码和库的二进制代码都必须可用。静态和动态库的代码以不同的格式显示:

  • 静态库可用作存档文件。它们包含一组对象文件。归档文件的文件名为 .a
  • 动态库作为共享对象提供。它们是可执行文件的一种形式。共享对象的文件名为 .so

要告诉 GCC 库的存档或共享对象文件的位置,请使用 -L 选项:

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

使用库目录的实际路径替换 library_path

L 选项可 多次使用,以添加多个目录。查找库时,系统将按照其 -L 选项的顺序搜索这些目录。

选项顺序很重要:GCC 无法链接到库 foo,除非它知道这个库的目录。因此,使用 -L 选项来指定库目录,然后再使用 -l 选项链接到库。

在同一步骤中编译和链接代码使用库

当一个 gcc 命令中允许编译并链接代码时,请一次性对上述两种情况使用 选项。

其它资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.