Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Procedure entry point __printf__ could not be located in the dynamic link library libintl-8.dll

When compiling Objective-C with GNUstep/MinGW I get the following error:

The procedure entry point __printf__ could not be located in the dynamic link library libintl-8.dll.

Windows 7/64-bit. File version on libintl-8.dll is 0.18.1.

Is the compiler using the right file?

Edit: here is the Exports table of the file at c:\MinGW\bin\libintl-8.dll

[Ordinal/Name Pointer] Table
        [   0] __printf__
        [   1] _get_output_format
        [   2] _nl_expand_alias
        [   3] _nl_explode_name
        [   4] _nl_find_domain
        [   5] _nl_find_msg
        [   6] _nl_language_preferences_default
        [   7] _nl_load_domain
         ...   ...
like image 504
Joe Davis Avatar asked Nov 29 '22 12:11

Joe Davis


1 Answers

On my system, I fixed this by reordering my system PATH envvar so that c:\MinGW\bin would show up before %GTK_BASEPATH%\bin. That way, the correct libintl-8.dll that as.exe wanted would be found, even when GCC launches it from c:\MinGW\bin\mingw32\bin instead of c:\MinGW\bin. Otherwise, it would try to link against the one shipped with some GTK+ SDK which did not have all of the required symbols, I assume. Also, in my case, the dialog box complained that as.exe was missing the symbol when really the libintl-8.dll that the dynamic linker decided to try to use was at fault.

Too bad there aren’t more packages installable via mingw-get that actually share shared objects instead of each SDK shipping its own installer along with its own incompatible variants of the DLLs…

like image 80
binki Avatar answered Dec 09 '22 12:12

binki