gpt4 book ai didi

xcode - Boost在Xcode上的线程组

转载 作者:行者123 更新时间:2023-12-04 21:57:25 25 4
gpt4 key购买 nike

在我的项目中遇到错误后,我尝试使用 C++ 在 Xcode (4.2) 上运行一个小测试程序。

#include <boost/thread.hpp>
#include <boost/bind.hpp>

int main (int argc, const char * argv[])
{
boost::thread_group tg;
return 0;
}

但是整个程序构建失败,输出错误:

Undefined symbols for architecture x86_64:
"boost::thread::~thread()", referenced from:
boost::thread_group::~thread_group()in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

然后我尝试使用

thread_group * tg = new thread_group();

编译没有问题,直到我尝试调用

tg->join_all();

编译器输出错误的地方,例如:

Undefined symbols for architecture x86_64:
"boost::detail::get_current_thread_data()", referenced from:
boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*)in main.o
"boost::this_thread::interruption_point()", referenced from:
boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in main.o
"boost::this_thread::disable_interruption::disable_interruption()", referenced from:
boost::shared_mutex::lock_shared() in main.o
"boost::this_thread::disable_interruption::~disable_interruption()", referenced from:
boost::shared_mutex::lock_shared() in main.o
"boost::thread::join()", referenced from:
boost::thread_group::join_all() in main.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

有谁知道如何解决这些问题?我一直在使用其他功能,例如 BOOST_FOREACH,没有任何问题。但是在尝试使用线程时遇到这些。

我需要:

  • 在我的“其他链接器标志”上指定标志?
  • 重新安装 boost 或某种?目前我正在使用 Boost 1.49.0,使用自制软件安装(即 sudo brew install boost)

或者是否有任何其他我需要包含的特定配置?

最佳答案

boost 线程库有一个您需要链接的实际库对象(-lboost_thread 或有时 -lboost_thread-mt)。

关于xcode - Boost在Xcode上的线程组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11617047/

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