반응형

항상 최신 버전을 사용하고 싶은 욕심에 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폴더만 덮어 씌우기를 했기때문에 발생한 문제이다.



반응형

+ Recent posts