0

我正在尝试boost::thread在 Qt 中创建一个应用程序。这是我的代码:

#include <iostream>

#include "boost/thread.hpp"
#include "boost/bind.hpp"

using namespace std;

class A {
public:
    void tf() {
        for (int i = 0; i < 100; ++i) {
            cout << i << endl;
        }
    }
};

int main()
{
    boost::shared_ptr<A> aPtr;
    cout << "Hello World!" << endl;
    boost::thread t = boost::thread(boost::bind(&A::tf, aPtr.get()));
    cout << "Thread started" << endl;
    return 0;
}

以及相应的 .pro 文件:

TEMPLATE = app
CONFIG += console
CONFIG -= qt

LIBS += -L"C:/Program Files (x86)/boost/boost_1_49/lib"
DEPENDPATH += "C:/Program Files (x86)/boost/boost_1_49"
INCLUDEPATH += "C:/Program Files (x86)/boost/boost_1_49"

SOURCES += main.cpp

当我尝试编译它时,我得到:

{{path}}\main.cpp:21: error: undefined reference to `_imp___ZN5boost6threadD1Ev'
{{path}}\main.o:-1: In function `ZN5boost6threadC1INS_3_bi6bind_tIvNS_4_mfi3mf0Iv1AEENS2_5list1INS2_5valueIPS6_EEEEEEEET_NS_10disable_ifINS_14is_convertibleIRSE_NS_6detail13thread_move_tISE_EEEEPNS0_5dummyEE4typeE':
c:\Program Files (x86)\boost\boost_1_49\boost\thread\detail\thread.hpp:205: error: undefined reference to `_imp___ZN5boost6thread12start_threadEv'
collect2.exe:-1: error: error: ld returned 1 exit status

有什么问题?我错过了什么?

M。

4

1 回答 1

2

您没有链接到 Boost Thread 库,您只是告诉 Qt 它在哪里。

LIBS += -L"C:/Program Files (x86)/boost/boost_1_49/lib" -lboost_thread
于 2013-04-03T09:35:10.697 回答