2011-01-25 75 views
4

我想端口的现有项目到iPhone这就需要Boost.Thread库,项目编译没有错误,但也有链接错误:如何将boost线程库添加到iPhone项目中?

"boost::thread::start_thread()", referenced from: 
    boost::thread::thread<(anonymous namespace)::ReadThread::Function>((anonymous namespace)::ReadThread::Function, boost::disable_if<boost::is_convertible<(anonymous namespace)::ReadThread::Function&, boost::detail::thread_move_t<(anonymous namespace)::ReadThread::Function> >, boost::thread::dummy*>::type)in ChessEngine.o 

我怎么能要求的线程库添加到Xcode项目?

p.s.升压库在:/usr/local/lib/libboost_thread-mt.a

EDIT(库中找到,但得到的架构错误):

Linking to Boost.Signals using Xcode,在Other Linker Flags将在Library Search Path/usr/local/lib-lboost_thread-mt后,该库中找到。不过,也有新的错误和警告:

ld: warning: in /usr/local/lib/libboost_thread-mt.dylib, file was built for unsupported file format which is not the architecture being linked (i386) 

怎样才可以有针对iOS(4.0或更高版本)的lib工作?谢谢!

回答

0

听起来好像你正试图链接一个架构库(armv6,7),当你可能把当前目标设置为一个设备(i386 - 模拟器)。如果这是正确的,我会说你已经下载了为该设备建立的库。要在模拟器中运行,您需要为您的计算机构建的库版本(I386)。

处理任何外部库的最简单方法是由开发人员生成armv6/armv7/i386静态框架。那么这是一个小菜一碟使用。如果这听起来很麻烦,我会在其他地方寻找功能:-)

相关问题