首页 文章

Qt按MongoDB C初始化分解

提问于
浏览
1

我很高兴在Qt中使用MongoDB c .

我已经安装了Boost,MongoDB c驱动程序,MongoDB c驱动程序,并在MongoDB教程(https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/tutorial/)之后成功测试了VS2017上的DB连接 .

但是,当我想在Qt上应用相同的代码时,出现了很多问题 .

整体设置:

  • Win10

  • Qt Creator v4.6.0 with Qt v5.10.1 MSVC2017 64位Microsoft Visual C编译器15.0调试器CDB x64

  • MongoDB v3.6.3

  • 作为lib64-msvc-14.1提升1.66.0

  • Mongo c驱动程序v1.9.3

  • Mongo cxx驱动程序r3.2.0

该程序在初始化实例时会崩溃,如下图所示:Break Down

该程序在使用时也崩溃了

$ mongocxx :: instance inst()

编译时使用C4930警告

$ mongocxx :: instance inst()

我猜我的问题有两个可能的原因链接错误错误版本的boost / mongocxx驱动程序以下是.pro文件中的定义

INCLUDEPATH += $$PWD/driver/c/include/libbson-1.0
    DEPENDPATH += $$PWD/driver/c/include/libbson-1.0
    LIBS += -L$$PWD/driver/c/lib -lbson-1.0
    LIBS += -L$$PWD/driver/c/lib -lbson-static-1.0


    INCLUDEPATH += $$PWD/driver/c/include/libmongoc-1.0
    DEPENDPATH += $$PWD/driver/c/include/libmongoc-1.0
    LIBS += -L$$PWD/driver/c/lib -lmongoc-1.0
    LIBS += -L$$PWD/driver/c/lib -lmongoc-static-1.0

    INCLUDEPATH += $$PWD/driver/c++/include/bsoncxx/v_noabi
    DEPENDPATH += $$PWD/driver/c++/include/bsoncxx/v_noabi
    LIBS += -L$$PWD/driver/c++/lib -lbsoncxx

    INCLUDEPATH += $$PWD/driver/c++/include/mongocxx/v_noabi
    DEPENDPATH += $$PWD/driver/c++/include/mongocxx/v_noabi
    LIBS += -L$$PWD/driver/c++/lib -lmongocxx        

    INCLUDEPATH += $$PWD/driver/boost_1_66_0
    DEPENDPATH += $$PWD/driver/boost_1_66_0
    LIBS += -L$$PWD/driver/boost_1_66_0/lib64-msvc-14.1 \
        -lboost_atomic-vc141-mt-gd-x64-1_66 \
        -lboost_atomic-vc141-mt-x64-1_66 \
        -lboost_bzip2-vc141-mt-gd-x64-1_66 \
        -lboost_bzip2-vc141-mt-x64-1_66 \
        -lboost_chrono-vc141-mt-gd-x64-1_66 \
        -lboost_chrono-vc141-mt-x64-1_66 \
        -lboost_container-vc141-mt-gd-x64-1_66 \
        -lboost_container-vc141-mt-x64-1_66 \
        -lboost_context-vc141-mt-gd-x64-1_66 \
        -lboost_context-vc141-mt-x64-1_66 \
        -lboost_coroutine-vc141-mt-gd-x64-1_66 \
        -lboost_coroutine-vc141-mt-x64-1_66 \
        -lboost_date_time-vc141-mt-gd-x64-1_66 \
        -lboost_date_time-vc141-mt-x64-1_66 \
        -lboost_fiber-vc141-mt-gd-x64-1_66 \
        -lboost_fiber-vc141-mt-x64-1_66 \
        -lboost_filesystem-vc141-mt-gd-x64-1_66 \
        -lboost_filesystem-vc141-mt-x64-1_66 \
        -lboost_graph-vc141-mt-gd-x64-1_66 \
        -lboost_graph-vc141-mt-x64-1_66 \
        -lboost_iostreams-vc141-mt-gd-x64-1_66 \
        -lboost_iostreams-vc141-mt-x64-1_66 \
        -lboost_locale-vc141-mt-gd-x64-1_66 \
        -lboost_locale-vc141-mt-x64-1_66 \
        -lboost_log-vc141-mt-gd-x64-1_66 \
        -lboost_log-vc141-mt-x64-1_66 \
        -lboost_log_setup-vc141-mt-gd-x64-1_66 \
        -lboost_log_setup-vc141-mt-x64-1_66 \
        -lboost_math_c99-vc141-mt-gd-x64-1_66 \
        -lboost_math_c99-vc141-mt-x64-1_66 \
        -lboost_math_c99f-vc141-mt-gd-x64-1_66 \
        -lboost_math_c99f-vc141-mt-x64-1_66 \
        -lboost_math_c99l-vc141-mt-gd-x64-1_66 \
        -lboost_math_c99l-vc141-mt-x64-1_66 \
        -lboost_math_tr1-vc141-mt-gd-x64-1_66 \
        -lboost_math_tr1-vc141-mt-x64-1_66 \
        -lboost_math_tr1f-vc141-mt-gd-x64-1_66 \
        -lboost_math_tr1f-vc141-mt-x64-1_66 \
        -lboost_math_tr1l-vc141-mt-gd-x64-1_66 \
        -lboost_math_tr1l-vc141-mt-x64-1_66 \
        -lboost_prg_exec_monitor-vc141-mt-gd-x64-1_66 \
        -lboost_prg_exec_monitor-vc141-mt-x64-1_66 \
        -lboost_program_options-vc141-mt-gd-x64-1_66 \
        -lboost_program_options-vc141-mt-x64-1_66 \
        -lboost_python-vc141-mt-gd-x64-1_66 \
        -lboost_python-vc141-mt-x64-1_66 \
        -lboost_random-vc141-mt-gd-x64-1_66 \
        -lboost_random-vc141-mt-x64-1_66 \
        -lboost_regex-vc141-mt-gd-x64-1_66 \
        -lboost_regex-vc141-mt-x64-1_66 \
        -lboost_serialization-vc141-mt-gd-x64-1_66 \
        -lboost_serialization-vc141-mt-x64-1_66 \
        -lboost_signals-vc141-mt-gd-x64-1_66 \
        -lboost_signals-vc141-mt-x64-1_66 \
        -lboost_stacktrace_noop-vc141-mt-gd-x64-1_66 \
        -lboost_stacktrace_noop-vc141-mt-x64-1_66 \
        -lboost_stacktrace_windbg-vc141-mt-gd-x64-1_66 \
        -lboost_stacktrace_windbg-vc141-mt-x64-1_66 \
        -lboost_stacktrace_windbg_cached-vc141-mt-gd-x64-1_66 \
        -lboost_stacktrace_windbg_cached-vc141-mt-x64-1_66 \
        -lboost_system-vc141-mt-gd-x64-1_66 \
        -lboost_system-vc141-mt-x64-1_66 \
        -lboost_thread-vc141-mt-gd-x64-1_66 \
        -lboost_thread-vc141-mt-x64-1_66 \
        -lboost_timer-vc141-mt-gd-x64-1_66 \
        -lboost_timer-vc141-mt-x64-1_66 \
        -lboost_type_erasure-vc141-mt-gd-x64-1_66 \
        -lboost_type_erasure-vc141-mt-x64-1_66 \
        -lboost_unit_test_framework-vc141-mt-gd-x64-1_66 \
        -lboost_unit_test_framework-vc141-mt-x64-1_66 \
        -lboost_wave-vc141-mt-gd-x64-1_66 \
        -lboost_wave-vc141-mt-x64-1_66 \
        -lboost_wserialization-vc141-mt-gd-x64-1_66 \
        -lboost_wserialization-vc141-mt-x64-1_66 \
        -lboost_zlib-vc141-mt-gd-x64-1_66 \
        -lboost_zlib-vc141-mt-x64-1_66 \
        -llibboost_atomic-vc141-mt-gd-x64-1_66 \
        -llibboost_atomic-vc141-mt-s-x64-1_66 \
        -llibboost_atomic-vc141-mt-sgd-x64-1_66 \
        -llibboost_atomic-vc141-mt-x64-1_66 \
        -llibboost_bzip2-vc141-mt-gd-x64-1_66 \
        -llibboost_bzip2-vc141-mt-s-x64-1_66 \
        -llibboost_bzip2-vc141-mt-sgd-x64-1_66 \
        -llibboost_bzip2-vc141-mt-x64-1_66 \
        -llibboost_chrono-vc141-mt-gd-x64-1_66 \
        -llibboost_chrono-vc141-mt-s-x64-1_66 \
        -llibboost_chrono-vc141-mt-sgd-x64-1_66 \
        -llibboost_chrono-vc141-mt-x64-1_66 \
        -llibboost_container-vc141-mt-gd-x64-1_66 \
        -llibboost_container-vc141-mt-s-x64-1_66 \
        -llibboost_container-vc141-mt-sgd-x64-1_66 \
        -llibboost_container-vc141-mt-x64-1_66 \
        -llibboost_context-vc141-mt-gd-x64-1_66 \
        -llibboost_context-vc141-mt-s-x64-1_66 \
        -llibboost_context-vc141-mt-sgd-x64-1_66 \
        -llibboost_context-vc141-mt-x64-1_66 \
        -llibboost_coroutine-vc141-mt-gd-x64-1_66 \
        -llibboost_coroutine-vc141-mt-s-x64-1_66 \
        -llibboost_coroutine-vc141-mt-sgd-x64-1_66 \
        -llibboost_coroutine-vc141-mt-x64-1_66 \
        -llibboost_date_time-vc141-mt-gd-x64-1_66 \
        -llibboost_date_time-vc141-mt-s-x64-1_66 \
        -llibboost_date_time-vc141-mt-sgd-x64-1_66 \
        -llibboost_date_time-vc141-mt-x64-1_66 \
        -llibboost_exception-vc141-mt-gd-x64-1_66 \
        -llibboost_exception-vc141-mt-s-x64-1_66 \
        -llibboost_exception-vc141-mt-sgd-x64-1_66 \
        -llibboost_exception-vc141-mt-x64-1_66 \
        -llibboost_fiber-vc141-mt-gd-x64-1_66 \
        -llibboost_fiber-vc141-mt-s-x64-1_66 \
        -llibboost_fiber-vc141-mt-sgd-x64-1_66 \
        -llibboost_fiber-vc141-mt-x64-1_66 \
        -llibboost_filesystem-vc141-mt-gd-x64-1_66 \
        -llibboost_filesystem-vc141-mt-s-x64-1_66 \
        -llibboost_filesystem-vc141-mt-sgd-x64-1_66 \
        -llibboost_filesystem-vc141-mt-x64-1_66 \
        -llibboost_graph-vc141-mt-gd-x64-1_66 \
        -llibboost_graph-vc141-mt-s-x64-1_66 \
        -llibboost_graph-vc141-mt-sgd-x64-1_66 \
        -llibboost_graph-vc141-mt-x64-1_66 \
        -llibboost_iostreams-vc141-mt-gd-x64-1_66 \
        -llibboost_iostreams-vc141-mt-s-x64-1_66 \
        -llibboost_iostreams-vc141-mt-sgd-x64-1_66 \
        -llibboost_iostreams-vc141-mt-x64-1_66 \
        -llibboost_locale-vc141-mt-gd-x64-1_66 \
        -llibboost_locale-vc141-mt-s-x64-1_66 \
        -llibboost_locale-vc141-mt-sgd-x64-1_66 \
        -llibboost_locale-vc141-mt-x64-1_66 \
        -llibboost_log-vc141-mt-gd-x64-1_66 \
        -llibboost_log-vc141-mt-s-x64-1_66 \
        -llibboost_log-vc141-mt-sgd-x64-1_66 \
        -llibboost_log-vc141-mt-x64-1_66 \
        -llibboost_log_setup-vc141-mt-gd-x64-1_66 \
        -llibboost_log_setup-vc141-mt-s-x64-1_66 \
        -llibboost_log_setup-vc141-mt-sgd-x64-1_66 \
        -llibboost_log_setup-vc141-mt-x64-1_66 \
        -llibboost_math_c99-vc141-mt-gd-x64-1_66 \
        -llibboost_math_c99-vc141-mt-s-x64-1_66 \
        -llibboost_math_c99-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_c99-vc141-mt-x64-1_66 \
        -llibboost_math_c99f-vc141-mt-gd-x64-1_66 \
        -llibboost_math_c99f-vc141-mt-s-x64-1_66 \
        -llibboost_math_c99f-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_c99f-vc141-mt-x64-1_66 \
        -llibboost_math_c99l-vc141-mt-gd-x64-1_66 \
        -llibboost_math_c99l-vc141-mt-s-x64-1_66 \
        -llibboost_math_c99l-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_c99l-vc141-mt-x64-1_66 \
        -llibboost_math_tr1-vc141-mt-gd-x64-1_66 \
        -llibboost_math_tr1-vc141-mt-s-x64-1_66 \
        -llibboost_math_tr1-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_tr1-vc141-mt-x64-1_66 \
        -llibboost_math_tr1f-vc141-mt-gd-x64-1_66 \
        -llibboost_math_tr1f-vc141-mt-s-x64-1_66 \
        -llibboost_math_tr1f-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_tr1f-vc141-mt-x64-1_66 \
        -llibboost_math_tr1l-vc141-mt-gd-x64-1_66 \
        -llibboost_math_tr1l-vc141-mt-s-x64-1_66 \
        -llibboost_math_tr1l-vc141-mt-sgd-x64-1_66 \
        -llibboost_math_tr1l-vc141-mt-x64-1_66 \
        -llibboost_prg_exec_monitor-vc141-mt-gd-x64-1_66 \
        -llibboost_prg_exec_monitor-vc141-mt-s-x64-1_66 \
        -llibboost_prg_exec_monitor-vc141-mt-sgd-x64-1_66 \
        -llibboost_prg_exec_monitor-vc141-mt-x64-1_66 \
        -llibboost_program_options-vc141-mt-gd-x64-1_66 \
        -llibboost_program_options-vc141-mt-s-x64-1_66 \
        -llibboost_program_options-vc141-mt-sgd-x64-1_66 \
        -llibboost_program_options-vc141-mt-x64-1_66 \
        -llibboost_python-vc141-mt-gd-x64-1_66 \
        -llibboost_python-vc141-mt-s-x64-1_66 \
        -llibboost_python-vc141-mt-sgd-x64-1_66 \
        -llibboost_python-vc141-mt-x64-1_66 \
        -llibboost_random-vc141-mt-gd-x64-1_66 \
        -llibboost_random-vc141-mt-s-x64-1_66 \
        -llibboost_random-vc141-mt-sgd-x64-1_66 \
        -llibboost_random-vc141-mt-x64-1_66 \
        -llibboost_regex-vc141-mt-gd-x64-1_66 \
        -llibboost_regex-vc141-mt-s-x64-1_66 \
        -llibboost_regex-vc141-mt-sgd-x64-1_66 \
        -llibboost_regex-vc141-mt-x64-1_66 \
        -llibboost_serialization-vc141-mt-gd-x64-1_66 \
        -llibboost_serialization-vc141-mt-s-x64-1_66 \
        -llibboost_serialization-vc141-mt-sgd-x64-1_66 \
        -llibboost_serialization-vc141-mt-x64-1_66 \
        -llibboost_signals-vc141-mt-gd-x64-1_66 \
        -llibboost_signals-vc141-mt-s-x64-1_66 \
        -llibboost_signals-vc141-mt-sgd-x64-1_66 \
        -llibboost_signals-vc141-mt-x64-1_66 \
        -llibboost_stacktrace_noop-vc141-mt-gd-x64-1_66 \
        -llibboost_stacktrace_noop-vc141-mt-s-x64-1_66 \
        -llibboost_stacktrace_noop-vc141-mt-sgd-x64-1_66 \
        -llibboost_stacktrace_noop-vc141-mt-x64-1_66 \
        -llibboost_stacktrace_windbg-vc141-mt-gd-x64-1_66 \
        -llibboost_stacktrace_windbg-vc141-mt-s-x64-1_66 \
        -llibboost_stacktrace_windbg-vc141-mt-sgd-x64-1_66 \
        -llibboost_stacktrace_windbg-vc141-mt-x64-1_66 \
        -llibboost_stacktrace_windbg_cached-vc141-mt-gd-x64-1_66 \
        -llibboost_stacktrace_windbg_cached-vc141-mt-s-x64-1_66 \
        -llibboost_stacktrace_windbg_cached-vc141-mt-sgd-x64-1_66 \
        -llibboost_stacktrace_windbg_cached-vc141-mt-x64-1_66 \
        -llibboost_system-vc141-mt-gd-x64-1_66 \
        -llibboost_system-vc141-mt-s-x64-1_66 \
        -llibboost_system-vc141-mt-sgd-x64-1_66 \
        -llibboost_system-vc141-mt-x64-1_66 \
        -llibboost_test_exec_monitor-vc141-mt-gd-x64-1_66 \
        -llibboost_test_exec_monitor-vc141-mt-s-x64-1_66 \
        -llibboost_test_exec_monitor-vc141-mt-sgd-x64-1_66 \
        -llibboost_test_exec_monitor-vc141-mt-x64-1_66 \
        -llibboost_thread-vc141-mt-gd-x64-1_66 \
        -llibboost_thread-vc141-mt-s-x64-1_66 \
        -llibboost_thread-vc141-mt-sgd-x64-1_66 \
        -llibboost_thread-vc141-mt-x64-1_66 \
        -llibboost_timer-vc141-mt-gd-x64-1_66 \
        -llibboost_timer-vc141-mt-s-x64-1_66 \
        -llibboost_timer-vc141-mt-sgd-x64-1_66 \
        -llibboost_timer-vc141-mt-x64-1_66 \
        -llibboost_type_erasure-vc141-mt-gd-x64-1_66 \
        -llibboost_type_erasure-vc141-mt-s-x64-1_66 \
        -llibboost_type_erasure-vc141-mt-sgd-x64-1_66 \
        -llibboost_type_erasure-vc141-mt-x64-1_66 \
        -llibboost_unit_test_framework-vc141-mt-gd-x64-1_66 \
        -llibboost_unit_test_framework-vc141-mt-s-x64-1_66 \
        -llibboost_unit_test_framework-vc141-mt-sgd-x64-1_66 \
        -llibboost_unit_test_framework-vc141-mt-x64-1_66 \
        -llibboost_wave-vc141-mt-gd-x64-1_66 \
        -llibboost_wave-vc141-mt-s-x64-1_66 \
        -llibboost_wave-vc141-mt-sgd-x64-1_66 \
        -llibboost_wave-vc141-mt-x64-1_66 \
        -llibboost_wserialization-vc141-mt-gd-x64-1_66 \
        -llibboost_wserialization-vc141-mt-s-x64-1_66 \
        -llibboost_wserialization-vc141-mt-sgd-x64-1_66 \
        -llibboost_wserialization-vc141-mt-x64-1_66 \
        -llibboost_zlib-vc141-mt-gd-x64-1_66 \
        -llibboost_zlib-vc141-mt-s-x64-1_66 \
        -llibboost_zlib-vc141-mt-sgd-x64-1_66 \
        -llibboost_zlib-vc141-mt-x64-1_66

连接驱动程序有什么错误吗?

或者我使用的驱动程序版本不正确(但使用VS2017是正常的)

有没有人遇到同样的问题? TKS

1 回答

  • 0

    我在mongodb邮件列表上回复了你,但你在这里做的许多事情是不正确的 . 您不应该链接库的静态和动态版本 . 您不应该同时连接boost库的零售版和调试版等 . 您应该确保连接boost,QT和mongocxx / bsoncxx / libmongoc / libbson库的一致版本w.r.t.调试/发布,静态/动态等

    我建议从第一原则出发,根据需要逐步 Build 起来 . 从mongocxx项目中获取一个示例,并设置一个项目,该项目可以针对您构建的驱动程序成功构建它 . 然后添加QT支持 .

相关问题