在Windows MSVC上,是否可以将某些.obj合并为一个.obj?如果是,我该怎么办?

问题描述

例如,有三个目标文件a.obj b.obj c.obj刚刚用cl编译出来,希望将它们组合成一个combined.obj

关于SO问题的评论指出,在* nix上可以用ld做这种事情。但是,cllink似乎都只支持.exe.dll.lib作为输出


我要对组合目标文件执行的整个过程如下:

  1. a.obj b.obj c.obj -> combined.obj
  2. combined.obj d.obj e.obj -> executable.exe

我的问题已解决 a.obj b.obj c.obj使用了一些尚未链接的变量和函数,并且我认为.lib不能容忍缺少的函数,因为它是一个库,但实际上还可以。我可以将它们合并成一个.lib文件

lib *.obj /OUT:combined.lib

解决方法

好像不是,但是把它们合并成一个.lib很方便:

lib *.obj /OUT:combined.lib