gpt4 book ai didi

使用 Boost Thread 的 C++ 链接器错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:08:17 29 4
gpt4 key购买 nike

尝试构建我在互联网上找到的标准 Boost::thread 示例时,我收到了 Boost 头文件 thread_data.hpp 抛出的多个错误,我没有直接链接到它,但我认为它是由 Boost 链接的。 (我在实际程序中也遇到了同样的错误,但我正在使用示例代码来确保这不是我的代码的问题。)

这是我在 boost::thread 教程中找到的示例代码:

    #include <iostream>
#include <boost/thread.hpp>
#include <boost/date_time.hpp>

void workerFunc()
{
boost::posix_time::seconds workTime(3);
std::cout << "Worker: running" << std::endl;

// Pretend to do something useful...
boost::this_thread::sleep(workTime);
std::cout << "Worker: finished" << std::endl;
}

int main(int argc, char* argv[])
{
std::cout << "main: startup" << std::endl;
boost::thread workerThread(workerFunc);
std::cout << "main: waiting for thread" << std::endl;
workerThread.join();
std::cout << "main: done" << std::endl;
return 0;
}

这是我的构建命令:

    mingw32-g++.exe -LC:\projects\boost\lib  -o bin\Debug\Guardian.exe obj\Debug\Scratch.o    -lboost_filesystem-mgw47-mt-1_53 -lboost_date_time-mgw47-mt-1_53 -lboost_system-mgw47-mt-1_53 -lboost_thread-mgw47-mt-1_53

(请注意,我正在链接boost.thread库。)

这是抛出的第一个错误:

    C:\projects\boost\include\boost-1_53\boost\thread\win32\thread_data.hpp|123|undefined reference to `_imp___ZTVN5boost6detail16thread_data_baseE'|

在 CodeBlocks 中,我被指向头文件 thread_data.hpp 的第 123 行作为错误源:

    //#if defined BOOST_THREAD_PROVIDES_INTERRUPTIONS
, interruption_handle(create_anonymous_event(detail::win32::manual_reset_event,detail::win32::event_initially_reset))
, interruption_enabled(true)

我忘记链接库了吗?我一直在毫无问题地使用 Boost,直到现在我正在尝试使用线程库。我是 Boost 的新手,不知道是什么导致了错误。

最佳答案

尝试将 -lpthread 添加到链接器。

关于使用 Boost Thread 的 C++ 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15998984/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com