firebase/firebase-cpp-sdk

[Bug] error LNK2001: unresolved external symbol _Avx2WmemEnabled

Opened this issue · 1 comments

[REQUIRED] Please fill in the following fields:

  • Pre-built SDK from the website or open-source from this repo: prebuilt from this repo's GitHub release page
  • Firebase C++ SDK version: 13.1 and 13.2
  • Problematic Firebase Component: Firestore
  • Other Firebase Components in use: Auth
  • Platform you are using the C++ SDK on: Windows
  • Platform you are targeting: Windows desktop

[REQUIRED] Please describe the issue here:

Linking the Windows firebase.lib with MSVC fails with the error:

[build] firebase_firestore.lib(4c456a4b533e2a6acad4654868657312_firestore_util.dir_Debug_path.obj) : error LNK2001: unresolved external symbol _Avx2WmemEnabled [C:\Users\ABrun\Documents\git\quickstart-cpp\build\desktop_testapp.vcxproj]

Reproduction steps with the quickstart Firestore testapp:

$env:FIREBASE_CPP_SDK_DIR = "$env:USERPROFILE/Downloads/firebase_cpp_sdk_13.1.0/firebase_cpp_sdk"
git clone https://github.com/firebase/quickstart-cpp
cd quickstart-cpp/firestore/testapp
Set-Alias cmakevs "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"
cmakevs -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_EXE_LINKER_FLAGS=/ignore:4099
cmakevs --build build --config Debug 

Visual Studio Community 2022: 17.14.18 (October 2025)
MSVC: 14.44.35207

The error happens every time. The build succeeds with Firebase SDK version 13.0.0 and 12.8.0. The error also happens on another minimal example I created at https://github.com/adabru/mre-firebase-crash-cpp.

With Google I only found llvm/llvm-project#154595. It mentions a bug in llvm. The fix was merged on Aug 22. So maybe a llvm update in the Firebase SDK build pipeline might fix this.

Thanks for flagging this. It seems like there is indeed an issue with either the LLVM or Windows SDK that are used by the build machines, which unfortunately doesn't show up on our tests, likely because they are the same machine configuration. We will try to find a fix for this, but in the meantime, hopefully you can use 13.0.0 or 12.8.0, since as you mentioned those seem to be lacking the unresolved symbols.