我有一个 dll,core.dll
我想使用 Visual Studio 出色的 Profile Guided Optimization 对其进行优化。大多数代码是 dll 实际上编译成一个名为的库core.lib
,然后由core.dll
.
为了对这段代码进行单元测试,我还有一个名为test_core.exe
. 这个可执行文件链接到core.lib
它并从中激活各种功能。DLL 的core.dll
导出很少,仅足以启动其主要功能。无法使用这些导出完全进行单元测试。
我想要的是通过激活其中的一些测试来收集 PGO 数据test_core.exe
,然后使用这些 PGO 数据进行链接和优化core.dll
。
似乎 Visual Studio 框架的设计使得收集可执行文件和优化的可执行文件是相同的。
一种选择是将相关测试添加到内部core.dll
并使用特殊导出运行它们,但这会导致core.dll
测试代码膨胀,而在任何其他情况下都不会使用。