dotgnu-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AW: [DotGNU]Windows specifica


From: Tobias Oberstein
Subject: AW: [DotGNU]Windows specifica
Date: Sun, 16 Feb 2003 10:09:37 +0100

> On Sunday 16 February 2003 10:52 am, Tobias Oberstein wrote:
> > I'd like to build a DLL under Windows using VC++ and statically
> > link Portable.NET.
>
> I don't like your chances of using VC++ to build Portable.NET.
> Pnet makes
> heavy use of shell scripts, bison, flex, and treecc to build
> source files on
> the fly to compile with gcc.  Integrating these meta-conversion
> tools into
> VC++ will be extremely difficult.

Oh no, no: I don't want to build PNet _itself_ using VC++, but only
build some app with VC++ which merely links in statically PNet libs
that I have previously built using MingW.

>
> If you wish to submit patches for VC++, then we'd welcome them,
> but it isn't a
> high priority for us to work around broken MS compilers.

VC++ _is_ broken. I know, I do a lot of C++ template stuff. Comeau is
reference. Don't waste any time. I just want to _link_.

Btw: thanks for the "dlltool" hint .. I tried this on all libs:

dlltool -l libILEngine.lib -z libILEngine.def --export-all-symbols
libILEngine.a

which produces at least *.lib/*.def files.

So, I linked against those *.lib, but it didn't work. Now I'm linking
directly
all the *.a pnet libs.

This is how far I got up to now:


I had to modify "il_values.h" due to ..

il_values.h(71) : error C2632: 'long' followed by 'long' is illegal
il_values.h(72) : error C2632: 'long' followed by 'long' is illegal

ORIGINAL:

/*
 * Determine which types should be used for 64-bit numeric values.
 */
#ifdef SIZEOF_LONG_LONG
        #if SIZEOF_LONG_LONG == 8
                typedef long long                       ILInt64;
                typedef unsigned long long      ILUInt64;
                #define IL_HAVE_INT64
        #endif
#endif


CHANGED:

/*
 * Determine which types should be used for 64-bit numeric values.
 */
#ifdef SIZEOF_LONG_LONG
        #if SIZEOF_LONG_LONG == 8
                #if (!defined(IL_WIN32_NATIVE))
                        typedef long long                       ILInt64;
                        typedef unsigned long long      ILUInt64;
                #else
                        typedef __int64                 ILInt64;
                        typedef unsigned __int64        ILUInt64;
                #endif
                #define IL_HAVE_INT64
        #endif
#endif



Now, I'm left with 9 unresolved externals, and currently I'm lost again:


Deleting intermediate files and output files for project 'ILEmbed - Win32
Release'.
--------------------Configuration: ILEmbed - Win32
Release--------------------
Compiling...
ilembed.c
Linking...
LINK : warning LNK4049: locally defined symbol "__iob" imported
LINK : warning LNK4049: locally defined symbol "___mb_cur_max" imported
LINK : warning LNK4049: locally defined symbol "__pctype" imported
LINK : warning LNK4049: locally defined symbol "__timezone" imported
libILEngine.a(cvm.o) : error LNK2001: unresolved external symbol ___divdi3
libILSupport.a(time.o) : error LNK2001: unresolved external symbol ___divdi3
libILSupport.a(socket.o) : error LNK2001: unresolved external symbol
___divdi3
libILEngine.a(cvm.o) : error LNK2001: unresolved external symbol ___udivdi3
libILSupport.a(bignum.o) : error LNK2001: unresolved external symbol
___udivdi3
libILSupport.a(decimal.o) : error LNK2001: unresolved external symbol
___udivdi3
libILEngine.a(cvm.o) : error LNK2001: unresolved external symbol ___moddi3
libILSupport.a(time.o) : error LNK2001: unresolved external symbol ___moddi3
libILSupport.a(socket.o) : error LNK2001: unresolved external symbol
___moddi3
libILEngine.a(cvm.o) : error LNK2001: unresolved external symbol ___umoddi3
libILSupport.a(bignum.o) : error LNK2001: unresolved external symbol
___umoddi3
libILSupport.a(decimal.o) : error LNK2001: unresolved external symbol
___umoddi3
libILEngine.a(lib_task.o) : error LNK2001: unresolved external symbol
___p__environ
libILEngine.a(lib_math.o) : error LNK2001: unresolved external symbol
_remainder
libILSupport.a(time.o) : error LNK2001: unresolved external symbol
__imp__timezone
OLDNAMES.lib(timezone.obi) : error LNK2001: unresolved external symbol
__imp__timezone
libILSupport.a(file.o) : error LNK2001: unresolved external symbol __alloca
libILSupport.a(regex.o) : error LNK2001: unresolved external symbol __alloca
libILSupport.a(getcwd.o) : error LNK2001: unresolved external symbol
__alloca
libffi.a(ffi.o) : error LNK2001: unresolved external symbol __alloca
libffi.a(win32.o) : error LNK2001: unresolved external symbol ffi_prep_args
Release/ILEmbed.exe : fatal error LNK1120: 9 unresolved externals
Error executing link.exe.

ILEmbed.exe - 22 error(s), 4 warning(s)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]