我正在迁移一些项目以使用CMake构建系统。现在我正在使用Catch库添加带有一些单元测试的项目。它是仅标头库。旧的Visual Studio项目构建良好,但新的CMake项目提供未解决的外部符号链接器错误。我在我的一个源文件中定义了 CATCH_CONFIG_MAIN。添加了测试所需的其他项目的所有cpp文件,并且链接了其他测试项目所依赖的所有库。尽管如此,我只有从CMake项目生成的未解决的外部符号错误:
ChipCountTests.obj : error LNK2019: unresolved external symbol "public: __thiscall Catch::SourceLineInfo::SourceLineInfo(char const *,unsigned int)" (??0SourceLineInfo@Catch@@QAE@PBDI@Z) referenced in function "void __cdecl `anonymous namespace'::`dynamic initializer for 'autoRegistrar1''(void)" (??__EautoRegistrar1@?A0xb4291ec5@@YAXXZ)
1>FlyingChipRewardCalculatorUT.obj : error LNK2001: unresolved external symbol "public: __thiscall Catch::SourceLineInfo::SourceLineInfo(char const *,unsigned int)" (??0SourceLineInfo@Catch@@QAE@PBDI@Z)
显然我缺少从vcxproj添加一些配置,CMakeLists.txt
但我目前无法弄清楚。