簡體   English   中英

Mongodb:加載共享庫時出錯:libboost_thread.so.1.54.0:>無法打開共享庫文件:沒有這樣的文件或目錄

[英]Mongodb : error while loading shared libraries: libboost_thread.so.1.54.0: > cannot open shared object file: No such file or directory

我正在嘗試將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

看來您的路徑中有兩倍的boost庫,而且都在/usr/local/lib (不好)。

最簡單的解決方案是,如果可以的話,僅使用一組增強庫。

否則,最好的設置是在特定(而非全局)位置安裝boost並將其鏈接(我對qmake並不十分了解):

INCLUDEPATH  += /path/to/boost/boost_1_54_0/include
QMAKE_LIBDIR += /path/to/boost/boost_1_54_0/lib
LIBS         += -libboost_system.so.1.54.0  # relative link (preferred)
LIBS         += /path/to/boost/boost_1_54_0/lib/libboost_thread.1.54.0.so  # hard link
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM