Link error in xcode 4.2/ iconv error!

I use libxml to save game data. in order to support chinese character, i use iconv to convert format.
but a linke error was appeard:

Undefined symbols for architecture i386: "_iconv_open", referenced from: FConverter::code_convert(char*, char*, char*, unsigned long, char*, unsigned long)in GameData.o "_iconv", referenced from: FConverter::code_convert(char*, char*, char*, unsigned long, char*, unsigned long)in GameData.o "_iconv_close", referenced from: FConverter::code_convert(char*, char*, char*, unsigned long, char*, unsigned long)in GameData.o ld: symbol(s) not found for architecture i386

I was not familiar with mac os and xcode, so i try to resolve it refer to visual c++.
I found a configuration in target/Build Phase and search iconv, there are three dylib under the list.
libiconv.2.4.0.dylib
libiconv.2.dylib
libiconv.dylib.
i select libiconv.dylib. compile error was resolved.

but i am not sure is this the best solution, and will it cause another problem later.

does dylib mean dynamic library like dll? if i have to public or share my application with this dylib file as windows application combine dll file.

thanks a lot.
:smiley:

I got the error too, could you tell me how to solve in xcode?

You need add libiconv.dylib via “add framework” in project.

After Xcode 7, Apple did a lot to strip the size of apps, including changing .dylib to .tbd.
Here you don’t need to add library & framework but you can add the library by changing the following option:
Other Linker Flags > Add "-l{yourlibraryname} (no space after -l)
In your case, you can add -liconv in Other Linker Flags.

1 Like

Thanks for reporting back @arjun :smile:

That would help other developers as well.