1

我有一个包含几个 MIDL 文件的项目,尽管它们没有改变,但 VS 总是重新编译。我尝试了几个技巧,包括将项目目录放入包含路径等,但没有任何帮助。问题是生成的头文件会影响其他“子项目”的重新编译,从而导致不必要的组件重建。

有什么解决方法吗?我什至尝试使用自定义构建工具(使用 midl.exe),这通常适用于其他类型的问题,但使用 midl.exe 表现出完全相同的行为,即 MIDL 总是被重新编译。

有点沮丧...

4

1 回答 1

2

解决。问题是所有编译的 IDL 文件都生成了相同的 dlldata.c 文件,这意味着每次 IDL 编译都会为下一个 IDL 文件搞砸它。通过将 DllData 文件 (MIDL/Output) 的显式路径设置为 %(Filename)_dlldata.c ,这一切都按预期工作。

于 2013-05-30T05:53:00.210 回答