MongoDb를 Qt C++와 연결하려고 합니다. 빌드할 때 오류는 없고 다음과 같은 메시지만 표시됩니다.
:-1: 경고: /usr/local/lib/libboost_thread.so에는 libboost_system.so.1.54.0이 필요하며 libboost_system.so.5와 충돌할 수 있습니다.
그러나 실행하려고 하면 다음과 같이 표시됩니다.
공유 라이브러리 로드 오류: libboost_thread.so.1.54.0: 공유 개체 파일을 열 수 없습니다. 해당 파일 또는 디렉터리가 없습니다.
여기에 내 작은 코드 예제가 있으며 모든 것이 괜찮아 보입니다.
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <mongo/client/dbclient.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
try
{
mongo::DBClientConnection c;
c.connect("localhost");
qDebug() << "Connected to Mongo";
}
catch (mongo::DBException &e)
{
qDebug() << "Cannot, Error : " << e.what();
}
}
MainWindow::~MainWindow()
{
delete ui;
}
이 오류가 발생하는 이유와 해결 방법을 설명해 주시겠습니까?
편집하다:
이것은 또한 내 .pro 파일이기도 합니다.
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = mongodbtest
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
INCLUDEPATH += /usr/local/lib/
LIBS += -pthread \
-lmongoclient \
-lboost_thread \
-lboost_system \
-lboost_regex
이미 libboost_thread.so.1.54.0이 있다는 것을 알았습니다.
[mg@mg-CentOS mg]$ libboost_thread.so.1.54.0 /usr/local/lib/libboost_thread.so.1.54.0 찾기