2016-06-11 62 views
1

我是新来的Boost和QT的启动者,所以我不知道包装系统如何在QT,Boost和CPP中工作。QT,socket.io和boost集成未定义的引用错误

我正在尝试使用在QT中集成Socket.IO以下this教程。我试图在没有CMake的情况下这样做,因为它对我来说看起来更容易理解。 我收到的错误和警告是这样的画面: Errors

所有这一切我迄今所做的是:
-Downloaded和解压加速
- 命令历史:

254 ./bootstrap.sh 
255 ./b2 --help 
256 ./b2 
257 ./bjam install --prefix="./" --with-system --with-date_time --with-random link=static runtime-link=shared threading=multi 
258 git clone --recurse-submodules https://github.com/socketio/socket.io-client-cpp.git 

- 将src文件夹的内容复制到我的项目文件夹下的siosrc
- 更新了pro文件,这是它的内容:

TEMPLATE = app 

QT += qml quick widgets 

CONFIG += c++11 

SOURCES += main.cpp \ 
      siosrc/sio_client.cpp \ 
      siosrc/sio_socket.cpp \ 
      siosrc/internal/sio_client_impl.cpp \ 
      siosrc/internal/sio_packet.cpp 

RESOURCES += qml.qrc 

# Additional import path used to resolve QML modules in Qt Creator's code model 
QML_IMPORT_PATH = 

# Default rules for deployment. 
include(deployment.pri) 

INCLUDEPATH += /home/akash/Softwares/Boost/boost_1_61_0/include/ \ 
       /home/akash/QTProjects/SioCpp/socket.io-client-cpp/lib/websocketpp/ \ 
       /home/akash/QTProjects/SioCpp/socket.io-client-cpp/lib/rapidjson/include/ \ 
       /home/akash/Softwares/Boost/boost_1_61_0/lib/ 

所有我所执行的步骤是什么,我可以从GitHub的自述和socket.io's cpp blog,由于源文件的位置,这似乎已经过时向我找出sio_packet.cpp是不正确的,在尊重该文件的位置github回购。

我希望我已经足够描述,有人可以帮助我!

回答

1

您的版本不链接到boost::system

假定您已经按照说明建立boostlinuxhere(即到在$BOOST_ROOT环境变量的目录),你可以在boost库目录添加到pro文件,随后boost_system库文件:

# Ensure that the BOOST_ROOT environment variable has been set 
BOOST_ROOT = $$(BOOST_ROOT) 
isEmpty(BOOST_ROOT) { 
    error("Please set BOOST_ROOT to the location of the Boost libraries") 
} else { 
    message(Using Boost from: $$BOOST_ROOT) 
} 

LIBS += -L$${BOOST_ROOT}/stage/lib 
LIBS += -lboost_system 

注:有包装boostlinux,其安装在/usr/lib/usr/lib64/usr/local/lib等,所以不要求来定义自己的路径。

我用了一些boost库和发现很容易列出所需的库和使用循环在pro文件添加链接的依赖关系,例如:

BOOST_LIBS = system log_setup log program_options thread 

LIBS += -L$${BOOST_ROOT}/stage/lib 
BOOST_LIB_PREFIX = boost_ 
for(lib, BOOST_LIBS) { 
    message(link: $${BOOST_LIB_PREFIX}$${lib}) 
    LIBS += -l$${BOOST_LIB_PREFIX}$${lib}} 
} 
+0

抱歉耽搁。感谢您的回答。 –

相关问题