【发布时间】:2017-03-23 07:51:09
【问题描述】:
我的 Visual Studio 解决方案中的一个项目可以分为:-
Library.h, Library.cpp
User.h, User.cpp (#include Library.h)
Main.h, Main.cpp (#include User.h) has "int main()"
(真正的项目远比这个大。)
每当我编辑任何Library.h 文件并按F5 时,它都会重新编译整个项目。这说得通。
现在我想编写/调试Library 并单独测试它,我不想重新编译所有内容,因为它会花费更多时间。
因此:-
- 我创建了
Main2.cpp#include只有Library.h,并且根本没有涉及User的代码。 - 我注释掉了整个
main.cpp。
这是我的 main2.cpp :-
#include "Library.h"
int main(){ .... some code about library ....}
当我按 F5 时,它编译了所有 .cpp 并运行良好。这还是有道理的。
问题
如果我编辑了Library.h,然后再按F5,它会重新编译:-
library.cpp-
User.cpp -
main.cpp main2.cpp
问题
如何让 Visual Studio 只重新编译必要的文件以节省编译时间?
(在这种情况下只编译library.cpp 和main2.cpp)
我猜需要重新编译很多文件是因为User 内部可能有一些静态函数对library 做一些事情。
如果我确定没有呢?
即使有某事,我也想(冒险)忽略它。
【问题讨论】:
-
如果您有一个库,请创建一个仅包含该库的实际库项目。
-
@n.m.谢谢大神n.m。有用的评论一如既往。我很高兴你没有再用一些可怕但总是正确的评论来破坏我的梦想。
标签: c++ visual-studio unit-testing