单元测试 - 仅在"int main()"左右重新编译以减少编译时间
unit test - recompile only around "int main()" to reduce compilation time
我的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
.
这是我的主要2.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
做一些事情。
如果我确定没有怎么办?
即使有什么,我也想(冒险)忽略它。
将解决方案分为 3 个项目:
- 图书馆
- 库测试
- 主要
当您不想重新编译"Main"时,只需右键单击它并卸载项目即可。
您可能应该考虑将 Library.h 分解为更小的部分,以便依赖项更加独立。
我建议不要为Visual Studio感到头疼,而是下载适用于Windows的MinGW c ++编译器,只需编译一个较小的单元测试实例,您需要这些文件作为一种不同的项目一起在控制台中
。相关文章:
- 使用简单类型列表实现的指数编译时间.为什么
- 在已经使用Git的情况下减少编译时间
- C++常量数组的编译时间较长
- 编译时间文本到数字转换 (atoi)
- 在C++中执行 N 阶乘编译时间的 3 种不同/相同方法
- DLLexport 类模板实例(专用化),减少了仅标头模板库的编译时间
- 替换枚举以最大化编译时间检查的最佳方法
- 不同C++功能的编译时间
- 在预编译标头中实例化模板会缩短编译时间吗?
- 使用 SCons 提取每个编译单元的编译时间
- 将 lambda 函数转换为另一个编译单元中的普通函数会缩短编译时间吗?
- std :: Invoke_result_t编译时间语法错误
- 模板;constexpr;编译时间
- 如何实现声明功能-C 11,编译时间
- 如何减少编译时间:在包含未触及的头文件的情况下
- C++编译时间类型确定
- 特征:返回对具有编译时间尺寸检查的矩阵块的引用
- 在编译时间定义多个派生类
- 在编译时间创建查找表
- C 函数在编译时间返回类型