2011-01-25 4 views
4

내가 포트에 Boost.Thread 라이브러리를 필요로 아이폰에 기존 프로젝트를 시도하고, 프로젝트가 오류없이 컴파일하지만 링크 오류가 있습니다 :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 

어떻게 엑스 코드 프로젝트에 필요한 스레드 libs와 추가 할 수 있습니까?

p.s. (라이브러리를 찾았지만, 아키텍처 오류가 발생했습니다) /usr/local/lib/libboost_thread-mt.a

편집 : 부스트 lib 디렉토리에

Other Linker FlagsLibrary Search Path/usr/local/lib-lboost_thread-mt를 추가 한 후, Linking to Boost.Signals using Xcode에 따라 라이브러리가 발견된다. 그러나 새로운 오류 및 경고가 있습니다.

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를 사용할 수 있습니까? 감사!

답변

1

나는 더 많은 검색을했는데 this downloadable script이 멀티 아키텍처 iphone ready 버전의 부스트를 만들 것이라고 발견했다. 또한 사용에 대해서는 this blog post을 확인하십시오.

0

아마도 현재 대상이 장치 (i386 - 시뮬레이터)로 설정되어있을 때 아키텍처 용 라이브러리 (armv6,7)에 연결하려는 것 같습니다. 그게 맞다면 당신은 장치 용 라이브러리를 다운로드했다고 말하고 싶습니다. 시뮬레이터에서 실행하려면 컴퓨터 용으로 빌드 된 라이브러리 버전이 필요합니다 (I386).

외부 라이브러리를 다루는 가장 쉬운 방법은 개발자가 armv6/armv7/i386 정적 프레임 워크를 생성하는 것입니다. 그런 다음 사용할 케이크의 조각입니다. 그것이 문제가되는 것처럼 많은 문제가 있다면, 나는 다른 곳에서 기능을 찾고있을 것이다 :-)

관련 문제