항상 최신 버전을 사용하고 싶은 욕심에 3.6버전에서 3.8.1을 파일을 cocos2d 폴더만 복사하여 덮어 씌우기를 했다.
기분 좋게 컴파일을 했는데 아래와 같은 에러가 발생했다.
Undefined symbols for architecture x86_64:
“_iconv“, referenced from:
cocos2d::FontAtlas::conversionU16TOGB2312(std::__1::basic_string<char16_t, std::__1::char_traits, std::__1::allocator > const&, std::__1::unordered_map, std::__1::equal_to, std::__1::allocator<std::__1::pair > >&) in libcocos2d iOS.a(CCFontAtlas.o)
“_iconv_close“, referenced from:
cocos2d::FontAtlas::~FontAtlas() in libcocos2d iOS.a(CCFontAtlas.o)
“_iconv_open“, referenced from:
cocos2d::FontAtlas::conversionU16TOGB2312(std::__1::basic_string<char16_t, std::__1::char_traits, std::__1::allocator > const&, std::__1::unordered_map, std::__1::equal_to, std::__1::allocator<std::__1::pair > >&) in libcocos2d iOS.a(CCFontAtlas.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
원인은 FontAtlas에서 libiconv.dlib를 사용해서 문제였다.
3.6에서는 사용하지 않았는데 어떤 이유인지는 모르지만 3.8.1부터는 libiconv.dlib를 사용하기 때문에 라이브러리에 추가를 해줘야 한다.
[방법]
프로젝트 → 「General」→ 「Linked Frameworks and Libraries "에"libiconv.dlib "을 추가 또는 "libiconv.tbd"를 추가하면 문제 해결
처음부터 3.8.1올 프로젝트를 생성하거나 라이브러리가 이미 추가되어 있으면 문제 없겠지만
cocos2d폴더만 덮어 씌우기를 했기때문에 발생한 문제이다.
'- cocos2d-x ' 카테고리의 다른 글
[ cocos2d-x 3.8.1 ] Action Scale X나 Y값만 조절하는 방법 (0) | 2015.11.16 |
---|---|
[ cocos2d-x 3.8.1 ] Label TTF Fontsize 변경 방법 및 AutoFontSize 방법 (2) | 2015.11.13 |
[ cocos2d-x 3.8 ] cocos2d-x 3.8 버전 사용시 문제점 (0) | 2015.10.25 |
[ cocos2d-x 3.6 ] Action함수 중 RemoveSelf 함수 활용 (0) | 2015.10.01 |
[ cocos2d-x 3.6 ] 간단하게 사용 가능한 Plugin SDKBOX 소개 (0) | 2015.08.30 |