Unresolved externals using static libs for Mongocxx 3.7.0 and Mongoc 1.22.2 with OpenSSL on Windows 10/VS2022

We’ve used Mongocxx in our C++ application for several years, and recently decided to upgrade to VS2022 and Mongocxx 3.7.0/MongoC 1.22.2. Prior to this we were running VS2017 with MongoCXX 3.6.6/MongoC 1.21.1.

I am able to build MongoC successfully with the following CMake commands:

cmake ../../mongo-c-driver-r1.22.2^
	-G "Visual Studio 17 2022"^
	-A x64^
	-DBUILD_VERSION=1.22.2^
	-DENABLE_SSL=OPENSSL^
	-DOPENSSL_ROOT_DIR=C:\3rdParty\OpenSSL-1.1.1s^
	-DENABLE_SASL=SSPI^
	-DENABLE_ICU=ON^
	-DENABLE_SHM_COUNTERS=OFF^
	-DENABLE_STATIC=ON^
	-DENABLE_CRYPTO_SYSTEM_PROFILE=OFF^
	-DENABLE_SHM_COUNTERS=OFF^
	-DCMAKE_INSTALL_PREFIX=install^
	-DCMAKE_PREFIX_PATH=install^
	-DBUILD_SHARED_LIBS=OFF^
	-DCMAKE_CXX_STANDARD=17^
	-DENABLE_EXTRA_ALIGNMENT=OFF^
	-DENABLE_BSON=ON^
	-DENABLE_SNAPPY=OFF^
	-DENABLE_ZSTD=OFF^
	-DENABLE_TRACING=ON^
	-DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF
cmake --build . --config RelWithDebInfo 
cmake --build . --config RelWithDebInfo --target install

And I’m able to build MongoCXX successfully with the following CMake commands:

cmake ../../mongo-cxx-driver-r3.7.0-release-build^
 -G "Visual Studio 17 2022"^
 -A x64^
 -DCMAKE_BUILD_TYPE=Release^
 -DBUILD_VERSION=3.7.0^
 -DCMAKE_INSTALL_PREFIX=install^
 -DBUILD_SHARED_LIBS=OFF^
 -DCMAKE_CXX_STANDARD=17^
 -DCMAKE_CXX_FLAGS="/Zc:__cplusplus /EHsc /D_ENABLE_EXTENDED_ALIGNED_STORAGE=0"^
 -Dlibbson-static-1.0_DIR="C:\mongocxx\mongo-c-driver-r1.22.2\cmake-build\install\lib\cmake\libbson-static-1.0"^
 -Dlibmongoc-static-1.0_DIR="C:\mongocxx\mongo-c-driver-r1.22.2\cmake-build\install\lib\cmake\libmongoc-static-1.0"^ 
cmake --build .
cmake --build . --target install

But when I try to use MongoCXX in my application I get the following unresolved externals:

|Error|LNK2019|unresolved external symbol usprep_openByType_58 referenced in function _mongoc_sasl_prep_impl|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-scram.obj)|1||
|Error|LNK2019|unresolved external symbol usprep_close_58 referenced in function _mongoc_sasl_prep_impl|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-scram.obj)|1||
|Error|LNK2019|unresolved external symbol usprep_prepare_58 referenced in function _mongoc_sasl_prep_impl|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-scram.obj)|1||
|Error|LNK2019|unresolved external symbol u_strToUTF8_58 referenced in function _mongoc_sasl_prep_impl|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-scram.obj)|1||
|Error|LNK2019|unresolved external symbol u_strFromUTF8_58 referenced in function _mongoc_sasl_prep_impl|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-scram.obj)|1||
|Error|LNK2019|unresolved external symbol compress2 referenced in function mongoc_compress|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-compression.obj)|1||
|Error|LNK2019|unresolved external symbol compressBound referenced in function mongoc_compressor_max_compressed_length|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-compression.obj)|1||
|Error|LNK2019|unresolved external symbol uncompress referenced in function mongoc_uncompress|ResolverDataModelTests|C:\mojo\libs\ResolverDataModel\tests\mongoc-static-1.0.lib(mongoc-compression.obj)|1||

I have tried so many combinations of things to get this to work (OpenSSL, Windows secure, SASL turned off, etc.) and I always end up with these 8 unresolved externals. I’m linking the following mongo libraries into my application:

libcrypto.lib
libssl.lib
secur32.lib
crypt32.lib
bcrypt.lib
dnsapi.lib
ws2_32.lib
bsoncxx-static.lib
bson-static-1.0.lib
mongocxx-static.lib
mongoc-static-1.0.lib

Is there another library that I’m missing?

Thanks for your help!