Я собрал драйверы mongocxx и bsoncxx в соответствии с инструкциями на официальном сайте. Теперь я связал .lib
файлы bsoncxx и mongocxx с моим проектом C ++, и если я пытаюсь запустить мое приложение main.cpp
, оно выдает ошибку, как указано ниже:
CMakeFiles\enabler_app.dir/objects.a(main.cpp.obj): In function `main':
main.cpp:12: undefined reference to `__imp__ZN8mongocxx7v_noabi8instanceC1Ev'
main.cpp:13: undefined reference to `__imp__ZN8mongocxx7v_noabi3uriC1EN7bsoncxx7v_noabi6string13view_or_valueE'
main.cpp:14: undefined reference to `__imp__ZN8mongocxx7v_noabi6clientC1ERKNS0_3uriERKNS0_7options6clientE'
main.cpp:16: undefined reference to `__imp__ZNK8mongocxx7v_noabi10collectioncvbEv'
main.cpp:16: undefined reference to `__imp__ZN8mongocxx7v_noabi10collectionD1Ev'
main.cpp:15: undefined reference to `__imp__ZN8mongocxx7v_noabi8databaseD1Ev'
main.cpp:14: undefined reference to `__imp__ZN8mongocxx7v_noabi6clientD1Ev'
main.cpp:13: undefined reference to `__imp__ZN8mongocxx7v_noabi3uriD1Ev'
main.cpp:12: undefined reference to `__imp__ZN8mongocxx7v_noabi8instanceD1Ev'
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[2]: *** [CMakeFiles\enabler_app.dir\build.make:137: enabler_app.exe] Error 1
mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:75: CMakeFiles/enabler_app.dir/all] Error 2
mingw32-make.exe: *** [Makefile:83: all] Error 2
Являются ли эти ошибки из-за проблема с ссылками? На данный момент я просто связал, как показано ниже в моем CMakeLists.txt:
add_library(MONGOCXX SHARED IMPORTED)
set_property(TARGET MONGOCXX PROPERTY IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/mongo_db_driver/lib/mongocxx.lib)
include_directories(${CMAKE_CURRENT_LIST_DIR}/mongo_db_driver/include/mongocxx/v_noabi)
target_link_libraries(${PROJECT_NAME} MONGOCXX)
add_library(BSONCXX SHARED IMPORTED)
set_property(TARGET BSONCXX PROPERTY IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/mongo_db_driver/lib/bsoncxx.lib)
include_directories(${CMAKE_CURRENT_LIST_DIR}/mongo_db_driver/include/bsoncxx/v_noabi)
target_link_libraries(${PROJECT_NAME} BSONCXX)
add_library(MONGOC SHARED IMPORTED)
set_property(TARGET MONGOC PROPERTY IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/mongo_c_driver/lib/mongoc-1.0.lib)
include_directories(${CMAKE_CURRENT_LIST_DIR}/mongo_c_driver/include/libmongoc-1.0)
target_link_libraries(${PROJECT_NAME} MONGOC)
add_library(BSONC SHARED IMPORTED)
set_property(TARGET BSONC PROPERTY IMPORTED_IMPLIB ${CMAKE_CURRENT_LIST_DIR}/mongo_c_driver/lib/bson-1.0.lib)
include_directories(${CMAKE_CURRENT_LIST_DIR}/mongo_c_driver/include/libbson-1.0)
target_link_libraries(${PROJECT_NAME} BSONC)
Main. cpp
int main () {
mongocxx::instance instance{};
mongocxx::uri uri("mongodb://localhost:27017");
mongocxx::client client(uri);
return 0;
}
Примечание: я включил требуемые заголовки уже в основную функцию. Я сделал то же самое для другой сторонней библиотеки, которая отлично работает для меня.
Как мне это исправить?