Skip to content

[question] ABI incompatibility although compiler.version matches #28877

@pasbi

Description

@pasbi

I'm building a library that uses spdlog.

My conan profile:

[settings]        
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=20
compiler.runtime=dynamic
compiler.version=194
os=Windows

According to https://conan.io/center/recipes/spdlog, spdlog/1.16.0 was build with the same compiler.version=194.

But I get a linker error:

spdlog.lib(spdlog.cpp.obj) : error LNK2019: unresolved external symbol __std_find_first_of_trivial_pos_1 referenced in function "unsigned __int64 __cdecl std::_Find_first_of_pos_vectorized<char,char>(char const * const,unsigned __int64,char const * const,unsigned __int64)" (??$_Find_first_of_pos_vectorized@DD@std@@YA_KQEBD_K01@Z) [C:\conan\p\b\foofe610ddef6d95\b\build\src\foo.vcxproj]

When I require some option for spdlog such that conan is forced to build the package locally, it links fine (FTR, I asked for {"no_exceptions": True}).
My local MSVC version is 19.44.35209.

What is your question?

  • compiler.version=194 matches any of 19.40, 19.43, 19.44, 19.49, right?
  • Is it possible that there was a breaking change from whatever conancenter-spdlog/1.16.0 was build to my 19.44? It wouldn't be possible to catch this if only the first three digits are used for compiler identification.
  • Maybe the problem is that spdlog/1.16.0 in the conan center was build with C++14 and I use C++20?

I appreciate any help, thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions