You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A while back I installed your library so that I could look at the code that David Sackstein presented in his CppCon 2022 presentation 10 Tips for Cleaner C++ code.
I've been trying to get his code running under VS2022 Preview which currently fails, and so I've revisited it, as part of demonstrating to MS that the preview has now broken the code from the presentation.
I tried upgrading both of the third party libraries tl::expected and Hypodermic.
However when it came to trying to build version 2.5.3 I find it doesn't link properly, unfortunately I threw away my previous copy of your library and so I don't know what version I was working from. I looked for old .zip files and it looks like I must previously have just cloned the repository at the time, and so now I can't go back.
When I encountered the errors in VS2022, I tried again to build Hypodermic in VS2019 but the same errors occur.
[19/20] Linking CXX executable Hypodermic.Tests\Hypodermic.Tests.exe
FAILED: Hypodermic.Tests/Hypodermic.Tests.exe
cmd.exe /C "cd . && "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --intdir=Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests -- C:\PROGRA~2\MICROS~4\2019\PROFES~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\main.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\CircularDependencyTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ContainerBuilderTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ContainerTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\DefaultConstructibleTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\FactoryTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\IsCompleteTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\MemoryTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\NamedTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\NestedContainerTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\PerformanceTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\PersistentInstanceRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedDependenciesTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedInstanceFactoryRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedInstanceRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\RegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\RuntimeRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\UseIfNoneTests.cpp.obj /out:Hypodermic.Tests\Hypodermic.Tests.exe /implib:Hypodermic.Tests\Hypodermic.Tests.lib /pdb:Hypodermic.Tests\Hypodermic.Tests.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:C:\'Boost\boost_1_81_0\lib C:\'Boost\boost_1_81_0\lib\libboost_system-vc142-mt-gd-x64-1_81.lib C:\'Boost\boost_1_81_0\lib\libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cmd.exe /C "cd /D C:\Dev\Libraries\Hypodermic\out\build\x64-Debug\Hypodermic.Tests && C:\Dev\Libraries\Hypodermic\out\build\x64-Debug\Hypodermic.Tests\Hypodermic.Tests""
LINK Pass 1: command "C:\PROGRA~2\MICROS~4\2019\PROFES~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\link.exe /nologo Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\main.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\CircularDependencyTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ContainerBuilderTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ContainerTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\DefaultConstructibleTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\FactoryTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\IsCompleteTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\MemoryTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\NamedTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\NestedContainerTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\PerformanceTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\PersistentInstanceRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedDependenciesTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedInstanceFactoryRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\ProvidedInstanceRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\RegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\RuntimeRegistrationTests.cpp.obj Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir\UseIfNoneTests.cpp.obj /out:Hypodermic.Tests\Hypodermic.Tests.exe /implib:Hypodermic.Tests\Hypodermic.Tests.lib /pdb:Hypodermic.Tests\Hypodermic.Tests.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console -LIBPATH:C:\'Boost\boost_1_81_0\lib C:\'Boost\boost_1_81_0\lib\libboost_system-vc142-mt-gd-x64-1_81.lib C:\'Boost\boost_1_81_0\lib\libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir/intermediate.manifest Hypodermic.Tests\CMakeFiles\Hypodermic.Tests.dir/manifest.res" failed (exit code 1169) with the following output:
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "void __cdecl boost::unit_test::results_reporter::set_level(enum boost::unit_test::report_level)" (?set_level@results_reporter@unit_test@boost@@YAXW4report_level@23@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(results_reporter.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: enum boost::unit_test::log_level __cdecl boost::unit_test::unit_test_log_t::set_threshold_level(enum boost::unit_test::log_level)" (?set_threshold_level@unit_test_log_t@unit_test@boost@@QEAA?AW4log_level@23@W4423@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(unit_test_log.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: static class boost::unit_test::unit_test_log_t & __cdecl boost::unit_test::unit_test_log_t::instance(void)" (?instance@unit_test_log_t@unit_test@boost@@SAAEAV123@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(unit_test_log.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::framework::impl::master_test_suite_name_setter::master_test_suite_name_setter(class boost::unit_test::basic_cstring<char const >)" (??0master_test_suite_name_setter@impl@framework@unit_test@boost@@QEAA@V?$basic_cstring@$$CBD@34@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(framework.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::global_configuration::global_configuration(void)" (??0global_configuration@unit_test@boost@@QEAA@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: virtual __cdecl boost::unit_test::global_configuration::~global_configuration(void)" (??1global_configuration@unit_test@boost@@UEAA@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: virtual __cdecl boost::unit_test::lazy_ostream::~lazy_ostream(void)" (??1lazy_ostream@unit_test@boost@@UEAA@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(framework.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: static class boost::unit_test::lazy_ostream & __cdecl boost::unit_test::lazy_ostream::instance(void)" (?instance@lazy_ostream@unit_test@boost@@SAAEAV123@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(framework.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "protected: __cdecl boost::unit_test::lazy_ostream::lazy_ostream(bool)" (??0lazy_ostream@unit_test@boost@@IEAA@_N@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(framework.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: void __cdecl boost::unit_test::unit_test_log_t::set_checkpoint(class boost::unit_test::basic_cstring<char const >,unsigned __int64,class boost::unit_test::basic_cstring<char const >)" (?set_checkpoint@unit_test_log_t@unit_test@boost@@QEAAXV?$basic_cstring@$$CBD@23@_K0@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(unit_test_log.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::test_tools::assertion_result::assertion_result(bool)" (??0assertion_result@test_tools@boost@@QEAA@_N@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::test_tools::assertion_result::~assertion_result(void)" (??1assertion_result@test_tools@boost@@QEAA@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "bool __cdecl boost::test_tools::tt_detail::report_assertion(class boost::test_tools::assertion_result const &,class boost::unit_test::lazy_ostream const &,class boost::unit_test::basic_cstring<char const >,unsigned __int64,enum boost::test_tools::tt_detail::tool_level,enum boost::test_tools::tt_detail::check_type,unsigned __int64,...)" (?report_assertion@tt_detail@test_tools@boost@@YA_NAEBVassertion_result@23@AEBVlazy_ostream@unit_test@3@V?$basic_cstring@$$CBD@63@_KW4tool_level@123@W4check_type@123@3ZZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tools.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: static class boost::unit_test::decorator::collector_t & __cdecl boost::unit_test::decorator::collector_t::instance(void)" (?instance@collector_t@decorator@unit_test@boost@@SAAEAV1234@XZ) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(decorator.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::test_case::test_case(class boost::unit_test::basic_cstring<char const >,class boost::unit_test::basic_cstring<char const >,unsigned __int64,class boost::function<void __cdecl(void)> const &)" (??0test_case@unit_test@boost@@QEAA@V?$basic_cstring@$$CBD@12@0_KAEBV?$function@$$A6AXXZ@2@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl boost::unit_test::ut_detail::normalize_test_case_name(class boost::unit_test::basic_cstring<char const >)" (?normalize_test_case_name@ut_detail@unit_test@boost@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$basic_cstring@$$CBD@23@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(class boost::unit_test::test_case *,class boost::unit_test::decorator::collector_t &,unsigned long)" (??0auto_test_unit_registrar@ut_detail@unit_test@boost@@QEAA@PEAVtest_case@23@AEAVcollector_t@decorator@23@K@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(class boost::unit_test::basic_cstring<char const >,class boost::unit_test::basic_cstring<char const >,unsigned __int64,class boost::unit_test::decorator::collector_t &)" (??0auto_test_unit_registrar@ut_detail@unit_test@boost@@QEAA@V?$basic_cstring@$$CBD@23@0_KAEAVcollector_t@decorator@23@@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: __cdecl boost::unit_test::ut_detail::auto_test_unit_registrar::auto_test_unit_registrar(int)" (??0auto_test_unit_registrar@ut_detail@unit_test@boost@@QEAA@H@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tree.obj)
C:\Dev\Libraries\Hypodermic\boost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(boost_unit_test_framework-vc142-mt-gd-x64-1_81.dll) : error LNK2005: "public: void __cdecl boost::test_tools::tt_detail::print_log_value<bool>::operator()(class std::basic_ostream<char,struct std::char_traits<char> > &,bool)" (??R?$print_log_value@_N@tt_detail@test_tools@boost@@QEAAXAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@_N@Z) already defined in libboost_unit_test_framework-vc142-mt-gd-x64-1_81.lib(test_tools.obj)
C:\Dev\Libraries\Hypodermic\Hypodermic.Tests\Hypodermic.Tests.exe : fatal error LNK1169: one or more multiply defined symbols found
ninja: build stopped: subcommand failed.
The text was updated successfully, but these errors were encountered:
A while back I installed your library so that I could look at the code that David Sackstein presented in his CppCon 2022 presentation 10 Tips for Cleaner C++ code.
I've been trying to get his code running under VS2022 Preview which currently fails, and so I've revisited it, as part of demonstrating to MS that the preview has now broken the code from the presentation.
I tried upgrading both of the third party libraries tl::expected and Hypodermic.
However when it came to trying to build version 2.5.3 I find it doesn't link properly, unfortunately I threw away my previous copy of your library and so I don't know what version I was working from. I looked for old .zip files and it looks like I must previously have just cloned the repository at the time, and so now I can't go back.
When I encountered the errors in VS2022, I tried again to build Hypodermic in VS2019 but the same errors occur.
The text was updated successfully, but these errors were encountered: