www.digitalmars.com         C & C++   DMDScript  

c++ - LINKING hell

reply "Luna Kid" <lunakid neuropolis.org> writes:
I'm trying hard to link some simple (but not 100% regular) Win32
stuff.

    OPTLINK fails: incomplete link with redefined symbols
    LCCLNK fails: no OMF support
    LD fails: no OMF support
    ALINK fails: breaks on reading SNN.LIB (poor OMF support?)
    WLINK fails: misses symbols from kernel32 (ehh, such a crap...)

I don't have MS LINK and TLINK around (MS has no OMF support,
though, IIRC. TLINK may save me, but I just wouldn't bet on it...)

Now, any known free tool to convert these darned OMF files to
COFF? Dumping OMF and reassemblink to COFF? (DUMPOBJ is not
quite that, OBJ2ASM is non-free?)

<plea>
Is that really so hard to support COFF? Dammit, I'm being tossed
closer and closer to writing an OMF --> COFF converter... :-(
Anyone, please save me from that!... I guess many others are
in the same boat; hope someone else has already started doing
that. Or ideally, Walter's started supporting COFF finally...
</plea>

Thanks so much,
Lunatic
May 13 2003
parent reply "Walter" <walter digitalmars.com> writes:
Why not reorganize the .obj files so there aren't multiply defined symbols?

"Luna Kid" <lunakid neuropolis.org> wrote in message
news:b9qn6i$19mc$1 digitaldaemon.com...
 I'm trying hard to link some simple (but not 100% regular) Win32
 stuff.

     OPTLINK fails: incomplete link with redefined symbols
     LCCLNK fails: no OMF support
     LD fails: no OMF support
     ALINK fails: breaks on reading SNN.LIB (poor OMF support?)
     WLINK fails: misses symbols from kernel32 (ehh, such a crap...)

 I don't have MS LINK and TLINK around (MS has no OMF support,
 though, IIRC. TLINK may save me, but I just wouldn't bet on it...)

 Now, any known free tool to convert these darned OMF files to
 COFF? Dumping OMF and reassemblink to COFF? (DUMPOBJ is not
 quite that, OBJ2ASM is non-free?)

 <plea>
 Is that really so hard to support COFF? Dammit, I'm being tossed
 closer and closer to writing an OMF --> COFF converter... :-(
 Anyone, please save me from that!... I guess many others are
 in the same boat; hope someone else has already started doing
 that. Or ideally, Walter's started supporting COFF finally...
 </plea>

 Thanks so much,
 Lunatic

May 13 2003
parent reply "Luna Kid" <lunakid neuropolis.org> writes:
How do you mean (in the described scenario)?


"Walter" <walter digitalmars.com> wrote in message
news:b9r7gm$1p9j$1 digitaldaemon.com...
 Why not reorganize the .obj files so there aren't multiply defined

 "Luna Kid" <lunakid neuropolis.org> wrote in message
 news:b9qn6i$19mc$1 digitaldaemon.com...
 I'm trying hard to link some simple (but not 100% regular) Win32
 stuff.

     OPTLINK fails: incomplete link with redefined symbols
     LCCLNK fails: no OMF support
     LD fails: no OMF support
     ALINK fails: breaks on reading SNN.LIB (poor OMF support?)
     WLINK fails: misses symbols from kernel32 (ehh, such a crap...)

 I don't have MS LINK and TLINK around (MS has no OMF support,
 though, IIRC. TLINK may save me, but I just wouldn't bet on it...)

 Now, any known free tool to convert these darned OMF files to
 COFF? Dumping OMF and reassemblink to COFF? (DUMPOBJ is not
 quite that, OBJ2ASM is non-free?)

 <plea>
 Is that really so hard to support COFF? Dammit, I'm being tossed
 closer and closer to writing an OMF --> COFF converter... :-(
 Anyone, please save me from that!... I guess many others are
 in the same boat; hope someone else has already started doing
 that. Or ideally, Walter's started supporting COFF finally...
 </plea>

 Thanks so much,
 Lunatic


May 13 2003
parent reply "Luna Kid" <lunakid neuropolis.org> writes:
Ahh, this one?

 Also, put your "default implementations" each in a separate .obj file, and
 put those .obj files in a library. Link that library last.

I'll try, thanks! (I thought about that, but didn't want to start splitting the files sooner than someone suggests that.) I'll report the results soon Sz. "Luna Kid" <lunakid neuropolis.org> wrote in message news:b9r8el$1qaj$1 digitaldaemon.com...
 How do you mean (in the described scenario)?


 "Walter" <walter digitalmars.com> wrote in message
 news:b9r7gm$1p9j$1 digitaldaemon.com...
 Why not reorganize the .obj files so there aren't multiply defined

 "Luna Kid" <lunakid neuropolis.org> wrote in message
 news:b9qn6i$19mc$1 digitaldaemon.com...
 I'm trying hard to link some simple (but not 100% regular) Win32
 stuff.

     OPTLINK fails: incomplete link with redefined symbols
     LCCLNK fails: no OMF support
     LD fails: no OMF support
     ALINK fails: breaks on reading SNN.LIB (poor OMF support?)
     WLINK fails: misses symbols from kernel32 (ehh, such a crap...)

 I don't have MS LINK and TLINK around (MS has no OMF support,
 though, IIRC. TLINK may save me, but I just wouldn't bet on it...)

 Now, any known free tool to convert these darned OMF files to
 COFF? Dumping OMF and reassemblink to COFF? (DUMPOBJ is not
 quite that, OBJ2ASM is non-free?)

 <plea>
 Is that really so hard to support COFF? Dammit, I'm being tossed
 closer and closer to writing an OMF --> COFF converter... :-(
 Anyone, please save me from that!... I guess many others are
 in the same boat; hope someone else has already started doing
 that. Or ideally, Walter's started supporting COFF finally...
 </plea>

 Thanks so much,
 Lunatic



May 13 2003
parent "Luna Kid" <lunakid neuropolis.org> writes:
 Also, put your "default implementations" each in a separate .obj file,


 put those .obj files in a library. Link that library last.

I'll try, thanks! (I thought about that, but didn't want to start splitting the files sooner than someone suggests that.) I'll report the results soon

Woohoo!... Moving the items in separate .obj-s did the job absolutely fine! (Sorry folks, no OMF --> COFF converter this time... ;-) BTW, OpenWatcom's WDIS.EXE seems to be a good staring point for such a "converter tool-chain".) Thanks Walter so much, Sz.
May 13 2003