如何使项目共享中间文件(.obj)
How can I make projects share intermediate (.obj) files?
我有一组C++解决方案。它们都包含一个公共代码目录不仅仅是#include
,它们还单独构建公共源文件这里有一个目录结构的例子:
code/
Common/
ProjectA/
ProjectB/
因此ProjectA
和ProjectB
都包含来自Common
的文件。我已经将两个项目的中间目录设置为code/_build/Debug/Obj
。
我曾预计,如果我先构建ProjectA
,那么ProjectB
就不需要从Common
源重新构建中间文件。这并没有发生。ProjectB
正在重建这些对象文件,如果我再次构建ProjectA
,它也会重建它们。
就好像如果对象文件不是由当前正在编译的项目生成的,则将触发条件重建。这是真的吗?
我知道我可以用公共代码创建一个库,但这不是一个选项。
就好像如果对象文件不是由当前正在编译的项目生成的,则将触发条件重建。这是真的吗?
是的。每个项目都有自己单独的生成文件列表。每个项目都与其他对象单独构建这些文件,因为每个项目也维护自己的单独构建选项。每个项目都是独立的,即使在同一个解决方案中也是如此。
您描述的问题以前也遇到过。事实上很久以前了。它的解决方案过去和现在都非常简单:创建第三个项目,该项目创建一个公共代码的静态库,该库由其他两个项目链接。事实上,静态库的存在正是因为这个原因。
如果情况禁止你使用旨在解决这个确切问题的解决方案,那么你有两个选择:
- 改变这些情况,以便使用解决方案
- 接受由于您的情况而导致的不必要的较长构建时间
相关文章:
- 如何在.obj文件上运行IlDasm?
- 在 opengl 中渲染 obj 文件时出现黑窗口
- 使用 Boost.Spirit 解析具有混合数据类型的 OBJ 文件?
- 正在读取 obj 文件!(指数)
- OBJ 文件C++与 ubuntu 问题
- 移植DXUT SDKMesh以导入OBJ文件,在哪里添加纹理坐标和索引
- 将多个网格放入单个波前 OBJ 文件中
- Python 脚本到 c .obj 文件
- CMake:如何在包含的标头更改时自动重建 .obj 文件
- 如何读取 .obj 文件?
- 合并 c++ obj 文件以进行 C 链接
- 我无法在 Flutter 桌面嵌入项目(在 Visual Studio 上)中创建 obj 文件
- 如何在没有CRT的情况下链接OBJ文件
- GCC.obj文件输出不具有确定性(.debug_info,PROGPITS部分)
- 将 Obj 文件导入 vtk
- Visual Studio C++ Copy obj 文件而不是编译
- 在C/C (JIT)中,在运行时加载并链接OBJ文件
- 尝试加载DirectX 11中的obj文件时,向量下标
- 用Assimp导入OBJ文件
- 错误LNK2005结构已在.obj文件中定义