2012/3/22 Leandro Santiago <
leandro...@gmail.com>:
> Hello to all. I'm using ubuntu 11.04 (32-bits) to cross-compile some
> static libraries to windows.
>
> I'm using mingw-w32 1.0, downloded from mingw-64 sf page.
>
> In some libraries I'm compiling, I have an error in the link time,
> when in the line of the source when e.g a function called myFunction()
> is called, in linking time the linker tries to call
> __impl__myFunction(), which is undefined.
>
> To reproduce this error, download libconfig-1.4.8.tar.gz from
>
http://www.hyperrealm.com/libconfig/>
> The configure parameters I used were:
> --prefix=$BUILD_PATH --disable-shared --enable-static --host=i686-w64-mingw32
>
> and the make output:
>
> $ make
> make all-recursive
> make[1]: Entrando no diretório `/home/devstar22/projects/3rd/libconfig-1.4.8'
> Making all in lib
> make[2]: Entrando no diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/lib'
> make all-am
> make[3]: Entrando no diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/lib'
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIG_EXPORTS -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-libconfig.lo -MD -MP -MF .deps/libconfig_la-libconfig.Tpo
> -c -o libconfig_la-libconfig.lo `test -f 'libconfig.c' || echo
> './'`libconfig.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIG_EXPORTS
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-libconfig.lo -MD -MP -MF .deps/libconfig_la-libconfig.Tpo
> -c libconfig.c -o libconfig_la-libconfig.o
> libconfig.c: In function '__config_locale_override':
> libconfig.c:100:2: warning: #warning "No way to modify calling thread's locale!"
> libconfig.c: In function '__config_locale_restore':
> libconfig.c:121:2: warning: #warning "No way to modify calling thread's locale!"
> mv -f .deps/libconfig_la-libconfig.Tpo .deps/libconfig_la-libconfig.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIG_EXPORTS -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-scanner.lo -MD -MP -MF .deps/libconfig_la-scanner.Tpo -c
> -o libconfig_la-scanner.lo `test -f 'scanner.c' || echo './'`scanner.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIG_EXPORTS
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-scanner.lo -MD -MP -MF .deps/libconfig_la-scanner.Tpo -c
> scanner.c -o libconfig_la-scanner.o
> mv -f .deps/libconfig_la-scanner.Tpo .deps/libconfig_la-scanner.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIG_EXPORTS -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-grammar.lo -MD -MP -MF .deps/libconfig_la-grammar.Tpo -c
> -o libconfig_la-grammar.lo `test -f 'grammar.c' || echo './'`grammar.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIG_EXPORTS
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-grammar.lo -MD -MP -MF .deps/libconfig_la-grammar.Tpo -c
> grammar.c -o libconfig_la-grammar.o
> mv -f .deps/libconfig_la-grammar.Tpo .deps/libconfig_la-grammar.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIG_EXPORTS -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-scanctx.lo -MD -MP -MF .deps/libconfig_la-scanctx.Tpo -c
> -o libconfig_la-scanctx.lo `test -f 'scanctx.c' || echo './'`scanctx.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIG_EXPORTS
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-scanctx.lo -MD -MP -MF .deps/libconfig_la-scanctx.Tpo -c
> scanctx.c -o libconfig_la-scanctx.o
> mv -f .deps/libconfig_la-scanctx.Tpo .deps/libconfig_la-scanctx.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIG_EXPORTS -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-strbuf.lo -MD -MP -MF .deps/libconfig_la-strbuf.Tpo -c -o
> libconfig_la-strbuf.lo `test -f 'strbuf.c' || echo './'`strbuf.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIG_EXPORTS
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_la-strbuf.lo -MD -MP -MF .deps/libconfig_la-strbuf.Tpo -c
> strbuf.c -o libconfig_la-strbuf.o
> mv -f .deps/libconfig_la-strbuf.Tpo .deps/libconfig_la-strbuf.Plo
> /bin/bash ../libtool --tag=CC --mode=link i686-w64-mingw32-gcc
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -version-info
> 10:2:1 -no-undefined -L/home/devstar22/projects/build_windows/lib -o
>
libconfig.la -rpath /home/devstar22/projects/build_windows/lib
> libconfig_la-libconfig.lo libconfig_la-scanner.lo
> libconfig_la-grammar.lo libconfig_la-scanctx.lo libconfig_la-strbuf.lo
> libtool: link: i686-w64-mingw32-ar cru .libs/libconfig.a
> libconfig_la-libconfig.o libconfig_la-scanner.o libconfig_la-grammar.o
> libconfig_la-scanctx.o libconfig_la-strbuf.o
> libtool: link: i686-w64-mingw32-ranlib .libs/libconfig.a
> libtool: link: ( cd ".libs" && rm -f "
libconfig.la" && ln -s
> "../
libconfig.la" "
libconfig.la" )
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-libconfig.lo -MD -MP -MF
> .deps/libconfig___la-libconfig.Tpo -c -o libconfig___la-libconfig.lo
> `test -f 'libconfig.c' || echo './'`libconfig.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-libconfig.lo -MD -MP -MF
> .deps/libconfig___la-libconfig.Tpo -c libconfig.c -o
> libconfig___la-libconfig.o
> libconfig.c: In function '__config_locale_override':
> libconfig.c:100:2: warning: #warning "No way to modify calling thread's locale!"
> libconfig.c: In function '__config_locale_restore':
> libconfig.c:121:2: warning: #warning "No way to modify calling thread's locale!"
> mv -f .deps/libconfig___la-libconfig.Tpo .deps/libconfig___la-libconfig.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-scanner.lo -MD -MP -MF .deps/libconfig___la-scanner.Tpo
> -c -o libconfig___la-scanner.lo `test -f 'scanner.c' || echo
> './'`scanner.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-scanner.lo -MD -MP -MF .deps/libconfig___la-scanner.Tpo
> -c scanner.c -o libconfig___la-scanner.o
> mv -f .deps/libconfig___la-scanner.Tpo .deps/libconfig___la-scanner.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-grammar.lo -MD -MP -MF .deps/libconfig___la-grammar.Tpo
> -c -o libconfig___la-grammar.lo `test -f 'grammar.c' || echo
> './'`grammar.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-grammar.lo -MD -MP -MF .deps/libconfig___la-grammar.Tpo
> -c grammar.c -o libconfig___la-grammar.o
> mv -f .deps/libconfig___la-grammar.Tpo .deps/libconfig___la-grammar.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-scanctx.lo -MD -MP -MF .deps/libconfig___la-scanctx.Tpo
> -c -o libconfig___la-scanctx.lo `test -f 'scanctx.c' || echo
> './'`scanctx.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-scanctx.lo -MD -MP -MF .deps/libconfig___la-scanctx.Tpo
> -c scanctx.c -o libconfig___la-scanctx.o
> mv -f .deps/libconfig___la-scanctx.Tpo .deps/libconfig___la-scanctx.Plo
> /bin/bash ../libtool --tag=CC --mode=compile i686-w64-mingw32-gcc
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-strbuf.lo -MD -MP -MF .deps/libconfig___la-strbuf.Tpo
> -c -o libconfig___la-strbuf.lo `test -f 'strbuf.c' || echo
> './'`strbuf.c
> libtool: compile: i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-strbuf.lo -MD -MP -MF .deps/libconfig___la-strbuf.Tpo
> -c strbuf.c -o libconfig___la-strbuf.o
> mv -f .deps/libconfig___la-strbuf.Tpo .deps/libconfig___la-strbuf.Plo
> /bin/bash ../libtool --tag=CXX --mode=compile i686-w64-mingw32-g++
> -DHAVE_CONFIG_H -I. -I.. -DPARSER_PREFIX=\"libconfig_yy\"
> -D_REENTRANT -DLIBCONFIGXX_EXPORTS -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-libconfigcpp.lo -MD -MP -MF
> .deps/libconfig___la-libconfigcpp.Tpo -c -o
> libconfig___la-libconfigcpp.lo `test -f 'libconfigcpp.c++' || echo
> './'`libconfigcpp.c++
> libtool: compile: i686-w64-mingw32-g++ -DHAVE_CONFIG_H -I. -I..
> -DPARSER_PREFIX=\"libconfig_yy\" -D_REENTRANT -DLIBCONFIGXX_EXPORTS
> -DLIBCONFIG_STATIC -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig___la-libconfigcpp.lo -MD -MP -MF
> .deps/libconfig___la-libconfigcpp.Tpo -c libconfigcpp.c++ -o
> libconfig___la-libconfigcpp.o
> mv -f .deps/libconfig___la-libconfigcpp.Tpo
> .deps/libconfig___la-libconfigcpp.Plo
> /bin/bash ../libtool --tag=CXX --mode=link i686-w64-mingw32-g++
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -version-info
> 10:2:1 -no-undefined -L/home/devstar22/projects/build_windows/lib -o
> libconfig++.la -rpath /home/devstar22/projects/build_windows/lib
> libconfig___la-libconfig.lo libconfig___la-scanner.lo
> libconfig___la-grammar.lo libconfig___la-scanctx.lo
> libconfig___la-strbuf.lo libconfig___la-libconfigcpp.lo
> libtool: link: i686-w64-mingw32-ar cru .libs/libconfig++.a
> libconfig___la-libconfig.o libconfig___la-scanner.o
> libconfig___la-grammar.o libconfig___la-scanctx.o
> libconfig___la-strbuf.o libconfig___la-libconfigcpp.o
> libtool: link: i686-w64-mingw32-ranlib .libs/libconfig++.a
> libtool: link: ( cd ".libs" && rm -f "libconfig++.la" && ln -s
> "../libconfig++.la" "libconfig++.la" )
> make[3]: Saindo do diretório `/home/devstar22/projects/3rd/libconfig-1.4.8/lib'
> make[2]: Saindo do diretório `/home/devstar22/projects/3rd/libconfig-1.4.8/lib'
> Making all in doc
> make[2]: Entrando no diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/doc'
> make[2]: Nada a ser feito para `all'.
> make[2]: Saindo do diretório `/home/devstar22/projects/3rd/libconfig-1.4.8/doc'
> Making all in tinytest
> make[2]: Entrando no diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/tinytest'
> i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> tinytest.o -MD -MP -MF .deps/tinytest.Tpo -c -o tinytest.o tinytest.c
> mv -f .deps/tinytest.Tpo .deps/tinytest.Po
> rm -f libtinytest.a
> i686-w64-mingw32-ar cru libtinytest.a tinytest.o
> i686-w64-mingw32-ranlib libtinytest.a
> make[2]: Saindo do diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/tinytest'
> Making all in tests
> make[2]: Entrando no diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/tests'
> i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../tinytest -I../lib
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -MT
> libconfig_tests-tests.o -MD -MP -MF .deps/libconfig_tests-tests.Tpo -c
> -o libconfig_tests-tests.o `test -f 'tests.c' || echo './'`tests.c
> mv -f .deps/libconfig_tests-tests.Tpo .deps/libconfig_tests-tests.Po
> /bin/bash ../libtool --tag=CC --mode=link i686-w64-mingw32-gcc
> -ggdb -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/
> -L/home/devstar22/projects/build_windows/lib -o libconfig_tests.exe
> libconfig_tests-tests.o -L../tinytest -ltinytest -L../lib/.libs
> -lconfig
> libtool: link: i686-w64-mingw32-gcc -ggdb
> -I/home/devstar22/projects/build_windows/include
> -I/home/devstar22/projects/build_windows/include/evil-1/ -o
> libconfig_tests.exe libconfig_tests-tests.o
> -L/home/devstar22/projects/build_windows/lib
> -L/home/devstar22/projects/3rd/libconfig-1.4.8/tinytest -ltinytest
> -L/home/devstar22/projects/3rd/libconfig-1.4.8/lib/.libs
> /home/devstar22/projects/3rd/libconfig-1.4.8/lib/.libs/libconfig.a
> libconfig_tests-tests.o: In function `parse_and_compare':
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:37:
> undefined reference to `__imp__config_init'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:38:
> undefined reference to `__imp__config_set_include_dir'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:40:
> undefined reference to `__imp__config_read_file'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:49:
> undefined reference to `__imp__config_write_file'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:54:
> undefined reference to `__imp__config_destroy'
> libconfig_tests-tests.o: In function `parse_file_and_compare_error':
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:64:
> undefined reference to `__imp__config_init'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:65:
> undefined reference to `__imp__config_read_file'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:74:
> undefined reference to `__imp__config_destroy'
> libconfig_tests-tests.o: In function `parse_string_and_compare_error':
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:86:
> undefined reference to `__imp__config_init'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:87:
> undefined reference to `__imp__config_read_string'
> /home/devstar22/projects/3rd/libconfig-1.4.8/tests/tests.c:95:
> undefined reference to `__imp__config_destroy'
> collect2: ld returned 1 exit status
> make[2]: ** [libconfig_tests.exe] Erro 1
> make[2]: Saindo do diretório
> `/home/devstar22/projects/3rd/libconfig-1.4.8/tests'
> make[1]: ** [all-recursive] Erro 1
> make[1]: Saindo do diretório `/home/devstar22/projects/3rd/libconfig-1.4.8'
> make: ** [all] Erro 2
>
>
> For example, line 37 in tests.c is:
> config_init(&cfg);
>
> but the linker calls __imp__config_init(), which is wrong.
>
> I read this is related to ms runtime and dllimport/dllexport. But I
> couldn't find anything which helps me to resolve the problem.
>
> Does anyone here know how to resolve this problem?
>
> Thanks in advance.
>
> --
> Atenciosamente,
> Leandro
--
Atenciosamente,
Leandro
------------------------------------------------------------------------------
This SF email is sponsosred by:
Try Windows Azure free for 90 days Click Here
http://p.sf.net/sfu/sfd2d-msazure
_______________________________________________
MinGW-users mailing list
MinGW...@lists.sourceforge.net
This list observes the Etiquette found at
http://www.mingw.org/Mailing_Lists.
We ask that you be polite and do the same. Disregard for the list etiquette may cause your account to be moderated.
_______________________________________________
You may change your MinGW Account Options or unsubscribe at:
https://lists.sourceforge.net/lists/listinfo/mingw-users
Also: mailto:mingw-use...@lists.sourceforge.net?subject=unsubscribe