【发布时间】:2017-06-19 11:01:29
【问题描述】:
我已经使用 MSBuild 在 Windows 10 64 位上成功编译了 Mongo C++11 驱动程序。尝试运行测试时收到错误消息;
The ordinal 4694 could not be located in the dynamic library libmongoc-1.0.dll
在搜索了如何通过名称强制链接 C++ 库后,我被指向 CMake 的 CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS 选项。
在 CMakeLists.txt 中设置它以编译 Mongo C 驱动程序后,我仍然收到相同的错误消息 set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON) 。我尝试在所有 Mongo 驱动程序(BSON、C 和 C++)中设置它,但仍然收到相同的错误消息。我也在 CMake 命令行 -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON 上尝试过,得到了同样的错误信息。
我是出于预期目的使用此选项还是有其他选项可以设置?
【问题讨论】:
-
我不确定非缓存变量的
-D选项的行为,但set命令的正确语法是set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)。在任何目标声明之前尝试此语法 -
你能尝试用 mongoc-1.0.dll 替换 libmongoc-1.0.dll 吗(同样适用于 libbson)?