C++ Qt 5.2.0生成单个.o文件

C++ Qt 5.2.0生成单个.o文件,c++,qt,C++,Qt,现在,Qt在我的项目中为每个.cpp文件生成一个.o文件。我可以强制它只生成一个巨大的.o文件吗?或者我可以使用一些UTIL将多个.o文件转换为一个文件吗 Edit1: 我这样做的原因是因为我想编译一个signleexe(没有DLL),但是要编译LGPL 要求静态链接的程序必须与其对象文件一起提供。这里()写道,我只能提供一个大型对象文件。您的问题不清楚您使用的是哪个工具链,因此我假设您需要一个跨平台的解决方案,而不是一个特定的解决方案 我想你是在寻找我们在KDE中使用过的东西。它将通过拥有一个

现在,Qt在我的项目中为每个
.cpp
文件生成一个
.o
文件。我可以强制它只生成一个巨大的
.o
文件吗?或者我可以使用一些UTIL将多个
.o
文件转换为一个文件吗

Edit1: 我这样做的原因是因为我想编译一个signleexe(没有DLL),但是要编译LGPL
要求静态链接的程序必须与其对象文件一起提供。这里()写道,我只能提供一个大型对象文件。

您的问题不清楚您使用的是哪个工具链,因此我假设您需要一个跨平台的解决方案,而不是一个特定的解决方案

我想你是在寻找我们在KDE中使用过的东西。它将通过拥有一个您想要的对象文件来减少链接时间,但另一方面,它肯定会使用更多的内存


您可以检查下面如何处理cmake变量。它基本上只是将源文件连接在一起作为一个编译单元。之所以这样做,是因为对于底层的工具链没有这样一个直接的选项。

不要认为这是可能的。但也许你可以解释一下为什么要这么做。通常,将对象打包在一起是在创建静态库时完成的。这不只是一个优化标志吗?我不知道。哪一个?可能不是制作一个巨大的obj文件(不可能不破坏项目结构),而是创建一个静态库?这是一个包含obj文件的档案。我认为静态库将满足LGPL的要求。@ThijsvanDien:为什么会是重复的?OP似乎没有提到gcc。如果需要跨平台或仅为clang和/或msvc工作,该怎么办?:)它是gcc还是ld的选项?你能提供链接吗?@sim:不,不是。这是工具链上的一个技巧。注意,OP没有提到gcc。