<分区>
现在 Qt 为我项目中的每个 .cpp
文件生成一个 .o
文件。我可以强制它只生成一个巨大的 .o
文件吗?或者我可以使用一些实用程序将多个 .o
文件转换为一个文件吗?
编辑1: 我这样做的原因是因为我想编译一个 signle exe(没有 dll)但是 LGPL 要求静态链接程序必须与其目标文件一起提供。这里(https://stackoverflow.com/a/17736670/1389883)写着我只能提供一个巨大的目标文件。
<分区>
现在 Qt 为我项目中的每个 .cpp
文件生成一个 .o
文件。我可以强制它只生成一个巨大的 .o
文件吗?或者我可以使用一些实用程序将多个 .o
文件转换为一个文件吗?
编辑1: 我这样做的原因是因为我想编译一个 signle exe(没有 dll)但是 LGPL 要求静态链接程序必须与其目标文件一起提供。这里(https://stackoverflow.com/a/17736670/1389883)写着我只能提供一个巨大的目标文件。
最佳答案
您的问题不清楚您正在使用哪个工具链,因此我假设您需要一个跨平台解决方案而不是一个特定的解决方案。
我认为您正在寻找我们在 KDE 中使用过的东西 KDE4_ENABLE_FINAL .它会通过拥有一个目标文件来减少链接时间,但另一方面,它肯定会使用更多的内存。
您可以在下方查看该 cmake 变量的处理方式。它基本上只是将源文件连接在一起成为一个编译单元。这样做是因为底层工具链没有这样的直接选项。
关于c++ - Qt 5.2.0 生成单个 .o 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20728707/