【问题标题】:How to link a lot of C++ object files without using too much memory?如何在不使用太多内存的情况下链接大量 C++ 目标文件?
【发布时间】:2023-03-24 08:59:01
【问题描述】:

我正在编写一个内部使用大量数据的 C++ 程序。这些数据分布在大约 5000 个源代码文件中。当我运行 make 时,所有这些文件都完美地编译为目标代码。但是,当我想将所有内容链接到一个可执行文件中时,我的计算机内存不足。

  • 如何将此任务拆分为较小的任务?例如,是否可以将目标文件的子集链接到另一个目标文件中,从而减少最终需要链接的目标文件的数量?
  • 在哪里可以了解如何设置大型项目的编译过程?

非常感谢任何提示。

【问题讨论】:

  • 您可以使用静态库来编译代码的子模块,也可以使用更大的交换文件。
  • 您应该将大型应用程序划分为应用程序和一些动态链接库。或者只是将 RAM 添加到您的计算机:)
  • 您可以将数据放入单独的文件中,然后在运行时读取该文件。

标签: c++ memory compilation linker


【解决方案1】:

将您的代码编译成静态库。然后针对应该只包含最终可执行文件中所需内容的库进行编译。

如果您正在使用 GCC,请查看 AR 选项。静态库是一个存档,您可以根据需要对其进行组合和提取。

【讨论】:

  • 谢谢,很有帮助。
猜你喜欢
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2017-12-26
  • 2011-07-24
  • 2018-02-12
  • 2018-01-06
相关资源
最近更新 更多