Michael Schumacher writes:
 > The result of make after creating the libintl.a & libiconv.a files:

 > Creating library file: .libs/libgimpui-1.3.dll.a
 > .libs/gimpui.o(.text+0x159):gimpui.c: undefined reference to `gimp_min_colors'
 > .libs/gimpui.o(.text+0x170):gimpui.c: undefined reference to `gimp_install_cmap'
 > .libs/gimpui.o(.text+0x1a4):gimpui.c: undefined reference to `gimp_gamma'
 > ...

 > and many more undefined references to 'gimp_...'.

Well, the above messages doesn't seem to have much to do with libintl
and libiconv import libraries. It seems that you aren't for some
reason linking with libgimp's import library. The Makefile.am does
have $(libgimp) in libgimpui_1_3_la_LIBADD, so it should. What does
your make output from the libtool --mode=link phase look like? For me
it is as follows:

/bin/bash ../libtool --mode=link gcc -mcpu=pentium3  -g -O2 -Wall -mms-bitfields  
-L/target/lib -o libgimpui-1.3.la -rpath /target/head/lib -version-info 17:0:0 
-no-undefined -export-symbols gimpui.def gimpui.lo gimpmenu.lo gimpmiscui.lo 
gimpbrushmenu.lo gimpfontmenu.lo gimpgradientmenu.lo gimppatternmenu.lo gimpexport.lo 
./libgimp-1.3.la ../libgimpwidgets/libgimpwidgets-1.3.la 
../libgimpcolor/libgimpcolor-1.3.la ../libgimpbase/libgimpbase-1.3.la -Li:/target/lib 
-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 
-lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl -liconv
rm -fr  .libs/libgimpui-1.3.dll.a .libs/libgimpui-1.3.dll.aT .libs/libgimpui-1.3.la 
if test "x`/usr/bin/sed 1q gimpui.def`" = xEXPORTS; then cp gimpui.def 
.libs/libgimpui-1.3-17.dll.def; else echo EXPORTS > .libs/libgimpui-1.3-17.dll.def; 
cat gimpui.def >> .libs/libgimpui-1.3-17.dll.def; fi
 gcc -mcpu=pentium3 -shared .libs/libgimpui-1.3-17.dll.def  .libs/gimpui.o 
.libs/gimpmenu.o .libs/gimpmiscui.o .libs/gimpbrushmenu.o .libs/gimpfontmenu.o 
.libs/gimpgradientmenu.o .libs/gimppatternmenu.o .libs/gimpexport.o  
-L/src/gimp-current/libgimpbase/.libs -Li:/target/lib 
-L/src/gimp-current/libgimpcolor/.libs -L/target/lib ./.libs/libgimp-1.3.dll.a 
../libgimpbase/.libs/libgimpbase-1.3.dll.a /target/lib/libgtk-win32-2.0.dll.a 
/target/lib/libgdk-win32-2.0.dll.a /target/lib/libatk-1.0-0.dll 
/target/lib/libgdk_pixbuf-2.0.dll.a /target/lib/libpangowin32-1.0.dll.a -lgdi32 
/target/lib/libpango-1.0.dll.a /target/lib/libgobject-2.0.dll.a 
/target/lib/libgmodule-2.0.dll.a /target/lib/libglib-2.0.dll.a -lintl -liconv  
-mcpu=pentium3 -mms-bitfields -o .libs/libgimpui-1.3-17.dll 
-Wl,--image-base=0x10000000 -Wl,--out-implib,.libs/libgimpui-1.3.dll.a
Creating library file: .libs/libgimpui-1.3.dll.a
creating libgimpui-1.3.la
(cd .libs && rm -f libgimpui-1.3.la && ln -s ../libgimpui-1.3.la libgimpui-1.3.l

 > Would you mind sharing your libiconv.a and libintl.a - and the
 > corresponding .def files?

(Sent in private reply.)

 > You mentioned that libintl.h has to be modified - is this just a #define or 
 > something else?

It's just a change at one line, line 102, which should be:

# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && (defined 
__STDC__ || defined __cplusplus)

The && !defined __MINGW32__ had to be added, otherwise it tries to use
some odd __adm__ stuff that doesn't work correctly when import
libraries are involved.


Gimp-developer mailing list

Reply via email to