嘿伙计们,我希望这不是重复,但已经搜索过,并没有找到类似的问题。
我正在尝试使用visual studio在Windows 7 64bit上构建MongoDB C驱动程序,如http://mongoc.org/libmongoc/1.1.5/installing.html
中所述cd mongo-c-driver-1.1.5\src\libbson
cmake -G "Visual Studio 10 Win64" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver"
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
cd mongo-c-driver-1.1.5
cmake -G "Visual Studio 2010 Win64" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DBSON_ROOT_DIR=C:\mongo-c-driver"
msbuild.exe ALL_BUILD.vcxproj
msbuild.exe INSTALL.vcxproj
我做的完全相同,但是在为libmongoc构建ALL_BUILD.vcxproj时,我得到了未解析的外部符号,尝试了很多东西,但仍然达到了这个deadend。
Error 146 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-stream-tls-openssl.obj mongoc_shared
Error 274 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-load
Error 359 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-secondary
Error 443 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set-ssl
Error 527 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set
Error 611 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-sharded-cluster
Error 722 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_ip_asc referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-libmongoc
Error 144 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-stream-tls-openssl.obj mongoc_shared
Error 272 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-load
Error 357 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-secondary
Error 441 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set-ssl
Error 525 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set
Error 609 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-sharded-cluster
Error 720 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set1_host referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-libmongoc
Error 145 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set_hostflags referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-stream-tls-openssl.obj mongoc_shared
Error 273 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set_hostflags referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-load
Error 358 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set_hostflags referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-secondary
Error 442 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set_hostflags referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set-ssl
Error 526 error LNK2019: unresolved external symbol X509_VERIFY_PARAM_set_hostflags referenced in function mongoc_stream_tls_openssl_new C:\Users\Airy\Desktop\mongo-c-driver-1.6.2\mongoc-static-1.0.lib(mongoc-stream-tls-openssl.obj) test-replica-set
...
提前致谢!
答案 0 :(得分:1)
修正了它,使用了
cmake -G "Visual Studio 14 2015 Win64" "-DENABLE_SSL=WINDOWS" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DBSON_ROOT_DIR=C:\mongo-c-driver"
而不是
cmake -G "Visual Studio 2010 Win64" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DBSON_ROOT_DIR=C:\mongo-c-driver"
答案 1 :(得分:0)
默认情况下,mongoc将针对OpenSSL进行编译(如果可用)。 在这种情况下,报告的OpenSSL版本似乎以某种方式被破坏,因为问题中的代码仅在检测到OpenSSL 1.0.2及更高版本时运行: https://github.com/mongodb/mongo-c-driver/blob/1.5.5/src/mongoc/mongoc-stream-tls-openssl.c#L641-L656 我很好奇你有哪些OpenSSL版本?
mongoc还支持其他TLS库,例如本机Windows安全通道。
在mongoc 2.0中(当我们可以更改ABI / API时),我们打算将默认值从OpenSSL更改为平台本机实现(Windows安全通道,macOS安全传输),而不是默认为OpenSSL。 LibreSSL(libtls)也受支持,将在找到时使用。
配置使用哪个TLS库,如上面的评论所述,将-DENABLE_SSL = WINDOWS传递给cmake(或DARWIN用于macOS安全传输)。