VC ++项目永远不会是最新的

时间:2010-01-22 15:51:48

标签: c++ visual-studio-2008 unit-testing linker

我正在使用Visual Studio 2008。

我有两个项目的解决方案。一个构建DLL,这是我的“生产代码”。另一个构建一个控制台应用程序exe,这是我的单元测试套件。

对于我的单元测试项目,我已经将DLL中的源模块名称列为链接器输入。即,我在DLL项目中有一个DLLMain.cpp,在exe项目中有一个链接器输入“DLLMain”。这允许exe与DLL项目生成的obj文件链接,防止仅为单元测试重新编译这些模块。 (节省了大量的构建时间。)

问题在于,因为exe的生成时间晚于obj,并且由不同的项目生成,所以它的时间戳总是比obj更新。因此,当您尝试运行或调试时,它总是说exe项目已过期,需要重建。

有没有什么方法可以配置exe项目来忽略时间戳?或者是否有其他一些我可能没有看到的更一般的解决方案?

2 个答案:

答案 0 :(得分:0)

好像你正在DLL的项目中创建foo.obj,在DLL项目中链接foo.obj以生成DLL,然后将foo.obj链接到你的EXE项目而不首先重新编译它。

我之前从未这样做过,但我要检查的第一件事是确保EXE项目和DLL项目的中间目录设置相同。

答案 1 :(得分:-1)

转到单元测试不需要的项目
右键单击它,然后按属性
单击配置管理器
使用第一个下拉列表添加新配置
点击确定
在当前聚焦的窗口中选择该配置 然后在配置属性中将“Excluded From Build”设置为yes