[英]mongo-cxx-driver library builds but persistent linking and debug issues
我正在嘗試構建 mongo-cxx-driver 以在帶有 Visual Studio 2015 的 Windows 10 上與 Cinder 一起使用。Cinder 使用 Boost 1.58,因此我針對他們包含的 Boost 版本構建了驅動程序。
我嘗試完全按照 github 上的說明進行操作,但是我得到的最終庫和 dll 似乎與它們有問題。 我很想幫助調試我的編譯出錯的地方!
由於我使用的是 Windows 和 Visual Studio 2015,因此我應該為 Polyfill 使用 Boost 選項。
我解壓了從 github 下載的 mongo-cxx-driver-3.0.2; 然后我進入
mongo-cxx-driver-r3.0.2\\mongo-cxx-driver-r3.0.2<\/code>並運行 CMake:
然后構建並安裝項目:
一切運行良好,我從 CMake 確認沒有錯誤。 萬歲!
問題<\/h2>
在測試時,我嘗試運行測試程序
如果我在 Debug 中運行它,那么它會在打印出帶有“Debug Assertion Failed”消息的數據庫后崩潰:檢查斷點表明它會導致文件末尾的行出現錯誤——可能是在從行清理期間
我的第一個懷疑是 .lib 文件和 .dll 可能是為發布而構建的——所以我在發布時構建了它。
我得到一個錯誤
mongo_test.exe has triggered a breakpoint<\/code> with the breakpoint deep inside
bsoncxx.dll!bsoncxx::v_noabi::string::view_or_value::terminated()<\/code> 。
在嘗試調試時,我將插入行更改為:
為了收集更多的調試信息。 我驚訝地發現編譯時不會出現 C2440 錯誤:
我懷疑問題可能出在我如何鏈接 Boost \/ std::experimental 上,但我嘗試了幾種不同的變體(禁用使用 boost 並使用 std::experimental 代替 polyfill),但這並沒有似乎創建了一個工作庫。 或者可能與 Debug \/ Release 或 x64 與 x86 不匹配?
任何人都可以識別此構建過程中的失誤嗎?
謝謝!
[編輯] 運行 mongo-cxx-driver 中包含的測試,包括此處用於調試目的的輸出:
我知道這是一個老問題,但我今天遇到了這個問題,所以我會在這里將我的解決方案發布給任何可能感興趣的人。 它僅在調試模式下發生,當我將 /MD 更改為 /MDd 時錯誤停止。 您可能必須重新編譯 mongocxx 以匹配您的設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.