2016-06-11 61 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

抱歉耽擱。感謝您的回答。 –

相關問題