creating shared dlls yields undefined reference to `WinMain@16' in mingw 4.3
Daniel Walter
d2walter@hotmail.com
Tue Dec 16 05:54:00 GMT 2008
Whenever I add an object file that was generated with gcj to a g++ link
command for a shared dll, I get an undefined reference to `WinMain@16'.
This seems to indicate that for some reason gcc wants to build an executable
instead of a shared library. This was working in gcc 3.4 - though I was
using cygwin with gcj -mno-cygwin which is no longer supported.
Is building dlls with g++ and gcj supported in newer versions of gcc?
Is there a different link command that will not try to build an executable?
works> g++ -shared cpptest.o -o pdflib.dll
works - event with lgcj> g++ -shared cpptest.o -lgcj -lws2_32 -o pdflib.dll
fails - it tries to build an executable> g++ -shared javatest.o
cpptest.o -lgcj -lws2_32 -o pdflib.dll
Daniel
BTW, thank you for the help with the C++ references for garabage collection.
Exactly how this works is still a little fuzzy, but at least I know what I
can do to make things work.
gcc -v
Using built-in specs.
Reading specs from c:/documents and settings/dan/my
documents/programs/cygwin/ho
me/dan/ming/bin/../lib/gcc/mingw32/4.3.0/libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
Target: mingw32
Configured with:
./gcc-4.3.0/configure --enable-languages=c,ada,c++,fortran,jav
a,objc,obj-c++ --disable-sjlj-exceptions --enable-shared --enable-libgcj --enabl
e-libgomp --with-dwarf2 --disable-win32-registry --enable-libstdcxx-debug --enab
le-concept-checks --enable-version-specific-runtime-libs --build=mingw32 --with-
bugurl=http://www.mingw.org/bugs.shtml --prefix=/mingw --with-gmp=/mingw/src/gcc
/gmp-mpfr-root --with-mpfr=/mingw/src/gcc/gmp-mpfr-root --with-libiconv-prefix=/
mingw/src/gcc/libiconv-root
Thread model: win32
gcc version 4.3.0 20080305 (alpha-testing) mingw-20080502 (GCC)
More information about the Java
mailing list