我有一个带有几个MIDL文件的项目,尽管它们没有变化,但VS总是重新编译。我已经尝试了几个技巧,包括将项目目录放在include path中等,但都没有用。问题是,生成的头文件会影响其他“子项目”的重新编译,从而导致不必要的组件重新编译。
是否有解决此问题的方法?我甚至尝试使用自定义构建工具(使用midl.exe),这通常适用于其他类型的问题,但使用midl.exe表现出相同的行为,即MIDL总是被重新编译。
有点让人沮丧。
发布于 2013-05-30 13:53:00
已解决。问题是所有编译的IDL文件都会生成相同的dlldata.c文件,这意味着每次IDL编译都会把下一个IDL文件的编译搞乱。通过将输出文件(MIDL/Output)的显式路径设置为%(文件名)_dlldata.c,一切都按预期工作。
https://stackoverflow.com/questions/16773241
复制相似问题