搜索

2.4. 将目标文件链接在一起

download PDF

通过将目标文件链接在一起,您只能编译包含更改的源文件,而不是整个项目。
当您处理由多个源文件组成的项目时,请使用 Clang 编译器为每个源文件编译对象文件。在下一步中,将这些目标文件链接在一起。clang 会自动生成一个包含链接目标文件的可执行文件。编译后,将目标文件再次链接在一起。

注意

要编译 C++ 程序,请使用 clang++ 而不是 clang

流程

  1. 要将源文件编译到目标文件中,请运行以下命令:

    • 在 Red Hat Enterprise Linux 7 上:

      $ scl enable llvm-toolset-15.0 'clang -o <object_file> -c <source_file>'
      • <object_file > 替换为对象文件所需的名称,<source_file > 替换为您的源文件的名称。
    • 在 Red Hat Enterprise Linux 8 中:

      $ clang -o <object_file> -c <source_file>
      • <object_file > 替换为对象文件所需的名称,<source_file > 替换为您的源文件的名称。
    • 在 Red Hat Enterprise Linux 9 中:

      $ clang -o <object_file> -c <source_file>
      • <object_file > 替换为对象文件所需的名称,<source_file > 替换为您的源文件的名称。
  2. 要将目标文件链接在一起,请运行以下命令:

    • 在 Red Hat Enterprise Linux 7 上:

      $ scl enable llvm-toolset-15.0 'clang -o <output_file> <object_file_0> <object_file_1>'
      • <output_file > 替换为输出文件所需的名称,将 &lt ;object_file > 替换为您要链接的对象文件的名称。
    • 在 Red Hat Enterprise Linux 8 中:

      $ clang -o <output_file> <object_file_0> <object_file_1>
      • <output_file > 替换为输出文件所需的名称,将 &lt ;object_file > 替换为您要链接的对象文件的名称。
    • 在 Red Hat Enterprise Linux 9 中:

      $ clang -o <output_file> <object_file_0> <object_file_1>
      • <output_file > 替换为输出文件所需的名称,将 &lt ;object_file > 替换为您要链接的对象文件的名称。
重要

目前,某些库功能被静态链接到使用 LLVM Toolset 构建的应用程序,以支持它们在多个 Red Hat Enterprise Linux 版本上执行。这会造成小的安全风险。如果由于这个风险,红帽会在需要重建应用程序时发布安全勘误。

红帽建议不要静态地链接整个应用程序。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.