0

我想在 MSVS2019 下使用 cpputest 构建一个小示例项目。为此,我使用一个空项目(稍后将包含我的源文件)、包含的 cpputest-repository 和我的 utest-project 构建一个解决方案,我想在其中为第一个项目编写测试。

当我构建时,我从链接器中得到了很多未解决的符号错误,尽管 Visual Studio“知道”(当我点击它们时,我可以打开连接的 .cpp 文件,查看它们的 defs 等等)......首先一种是:

Error   LNK2019 unresolved external symbol "public: static int __cdecl CommandLineTestRunner::RunAllTests(int,char * *)" (?RunAllTests@CommandLineTestRunner@@SAHHPAPAD@Z) referenced in function _main UnitTest    C:\...\UnitTest\AllTests.obj    1

这是我尝试过的:

  • 我首先在https://cpputest.github.io/下载了 3.8.-zip,并在 /doc 中找到了一个解释如何设置 msvs-project 的 word 文件(它与 vs2010 相关,但我认为不可能远离我想在 vs2019 中做的事情)。
  • 当我尝试构建此解决方案时,我无法构建此解决方案,找不到某些文件,我认为我遇到了与此处所述相同的问题:https ://github.com/cpptest/cpputest/issues/1046 -到目前为止,一切都很好
  • 我从所有不必要的遗留配置中清除了用于 unittest-project 的编译器和链接器,现在我只使用编译器配置:

AdditionalIncludeDirectories C:\Projects\cpputest\include;

和链接器配置:

附加库目录“C:\Projects\cpputest\lib”

这导致 cl 文本:

/JMC /ifcOutput "调试" /GS /analyze- /W1 /Zc:wchar_t /I"C:\Projects\cpputest\include" /ZI /Gm- /Od /Fd"Debug\vc142.pdb" /FI"C :\Projects\cpputest/include/CppUTest/MemoryLeakDetectorNewMacros.h" /FI"C:\Projects\cpputest/include/CppUTest/MemoryLeakDetectorMallocMacros.h" /Zc:inline /fp:precise /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /FC /Fa"Debug" /EHsc /nologo /Fo"Debug" /Fp"Debug\UnitTest.pch" /diagnostics:column

和链接器文本

/OUT:"C:\Projects\dummyfirmware_cpputest\dummyFirmware_CppUTest_Solution\Debug\UnitTest.exe" /MANIFEST /NXCOMPAT /PDB:"C:\Projects\dummyfirmware_cpputest\dummyFirmware_CppUTest_Solution\Debug\UnitTest.pdb" /DYNAMICBASE "kernel32.lib" " user32.lib""gdi32.lib""winspool.lib""comdlg32.lib""advapi32.lib""shell32.lib""ole32.lib""oleaut32.lib""uuid.lib""odbc32.lib"" odbccp32.lib" /DEBUG:FULL /MACHINE:X86 /INCREMENTAL /PGD:"C:\Projects\dummyfirmware_cpputest\dummyFirmware_CppUTest_Solution\Debug\UnitTest.pgd" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile :"Debug\UnitTest.exe.intermediate.manifest" /LTCGOUT:"Debug\UnitTest.iobj"/ERRORREPORT:PROMPT /ILK:"Debug\UnitTest.ilk" /NOLOGO /LIBPATH:"C:\Projects\cpputest\lib" /TLBID:1

我的代码:

//AllTestsCpp
#include "CppUTest/TestHarness.h"
#include "CppUTest/CommandLineTestRunner.h"

IMPORT_TEST_GROUP(FirstTestGroup);

int main(int ac, char** av)
{
    return CommandLineTestRunner::RunAllTests(ac, av);
}

#include "CppUTest/CommandLineTestRunner.h"

TEST_GROUP(FirstTestGroup)
{
};

TEST(FirstTestGroup, FirstTest)
{
    FAIL("Fail me!");
}

有人知道我哪里出错了吗?

4

0 回答 0