2012-12-14 2 views
4
나는 정적 lib 디렉토리 내 응용 프로그램 링크를 구축

는 오류 사람이 오류가 무엇인지 말해 줄 수 iOS6의 빌드 링크 오류

Undefined symbols for architecture armv7: 
"std::_List_node_base::hook(std::_List_node_base*)", referenced from: 
     std::list<TSendBuf, std::allocator<TSendBuf> >::_M_insert(std::_List_iterator<TSendBuf>, TSendBuf const&) in libCardAnalyLib1.a(SendRecvThread.o) 
"std::_List_node_base::unhook()", referenced from: 
     std::list<TSendBuf, std::allocator<TSendBuf> >::_M_erase(std::_List_iterator<TSendBuf>) in libCardAnalyLib1.a(SendRecvThread.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

에 따라 발견? 고맙습니다.
그리고 앱과 lib에 C++ 코드가 있습니다. 내 데모 앱이 lib 디렉토리를 링크 할 수 없습니다,이 오류를 보여 주며, TSendBuf 당신은 아마 프레임 워크/바이너리 애플리케이션 링크 목록에 libstdc++.dylib를 추가 할 필요가

typedef struct { 
    unsigned char szBuf[1200];//1000 fah char 
} TSendBuf; 
+0

amr7 아키텍처 용으로 라이브러리가 빌드 되었습니까? – danielM

+0

예, armv6, armv7입니다. – user1904710

답변

2

라이브러리 및 응용 가능성 링크 설정에서 일치하지 않는 목표 설정에서/탭/"라이브러리와 링크 된 바이너리를" "페이즈를 구축"고 할 수

.

확인 특별히 엑스 코드 빌드 설정 모두의, 라이브러리와 응용 프로그램 내 애플 LLVM 컴파일러 아래하여 C++ 표준 라이브러리 설정합니다. 그 사람들은 일치해야합니다.

문제의 라이브러리가 아무 것도 아니라고 가정하고 그 라이브러리가 얼마 전에 제작 되었다면 (Xcode 4.5/LLVM 4.1 이전), 앱의 "올바른"설정은 입니다. libstdC++ (GNU C++ 표준 라이브러리).