vs2010报错C1854:无法覆盖在创建对象文件“.../stdafx.obj”的预编译头过程中形成的信息。我在生成项目时不会报这个错,但是重新生成项目时就会报这个错。而我已经将stdafx.cpp文件中的预编译头属性设置成创建,其他的cpp设置成使用了,但是还是报这个错。因为我是接手的别人的项目,所以我不清楚这个项目是怎么配置的。但我发现,这个项目中有个tee chart目录,里面也有stdafx.cpp和stdafx.h文件。tee chart目录下的stdafx.cpp的预编译头设置的是使用,我不知道是不是因为有两个stdafx.cpp文件导致的这个问题,但是我试着删除了其中一个,都会报其他很多错误,说明这两个相同的文件都有用,也不会冲突呀。主要是想不明白直接生成就可以,清理后再生成或重新生成就报错。
可怜,真是接了个烂摊子啊,居然连预编译头文件这种玩意都搞出两套来,这个只能看如何调试了,是否可以把两个文件内容合并到一个里面,删除其中的一组。
两个stdafx.cpp应该删掉一个,并且将留下来的设置为‘创建’,具体删除哪一个,要自己推测原作者的意思了。理论上,stdafx.cpp应该是空的,只包含stdafx.h,没有其他代码(我也想不到为什么需要在这个文件内实现代码,这样做也不怎么规范吧?)
将头文件中的stdafx.h删除了,然后重新新建文件可以自动生成一个框架