Jump to page: 1 2
Thread overview
FIXLIB
Jul 03, 2001
Darin Peshev
Jul 03, 2001
Jan Knepper
Jul 03, 2001
Walter
Jul 03, 2001
Darin Peshev
Jul 03, 2001
Walter
Jul 03, 2001
Jan Knepper
Jul 03, 2001
Darin Peshev
Jul 03, 2001
Jan Knepper
Jul 03, 2001
Walter
Jul 03, 2001
Darin Peshev
Jul 03, 2001
Jan Knepper
July 03, 2001
Trying to link some libraries generates:

 Warning 140: Library probably needs FIXLIB

Any idea where to find FIXLIB and what does this mean?
Is there a decent debugger that can debug DigitalMars compiled .EXE?
Regards,
Darin

July 03, 2001
Which libraries are you trying to link?

You should be able to use CodeView... Check the compiler options on how
to generate the proper debugging format.
Also, the DMC++ CD-ROM comes with a complete ID(D)E which includes a
debugger...

Jan



Darin Peshev wrote:

> Trying to link some libraries generates:
>
>  Warning 140: Library probably needs FIXLIB
>
> Any idea where to find FIXLIB and what does this mean?
> Is there a decent debugger that can debug DigitalMars compiled .EXE?
> Regards,
> Darin

July 03, 2001
Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
>Trying to link some libraries generates:
>
> Warning 140: Library probably needs FIXLIB
>
>Any idea where to find FIXLIB and what does this mean?

I believe it means that the symbol table in the .LIB file is corrupted. What .LIB file is it?

>Is there a decent debugger that can debug DigitalMars compiled .EXE?


The debugger comes on the CD version, available from:

    www.digitalmars.com/shop.html

-Walter


July 03, 2001
Hmm, that's strange because this is import library generated as a result of implib. Does this means that implib is buggy? .DLL for which I'm generating import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get this:

C:\dm\bin\..\lib\SNN.lib(constart)
 Error 83: Illegal frame on start address
OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented output

main.obj(main)
 Error 116: NEAR call to IMPORT at Relative 00013H  from
 Segment _TEXT
 FRAME  = Frame of Group FLAT 0000
 TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
QApplication::QApplication(int &,char **))
00000H
 FIXUPP Type = 32-bit Conditional JMP

Any ideas?
Darin

Walter wrote:

> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
> >Trying to link some libraries generates:
> >
> > Warning 140: Library probably needs FIXLIB
> >
> >Any idea where to find FIXLIB and what does this mean?
>
> I believe it means that the symbol table in the .LIB file is corrupted. What .LIB file is it?
>
> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
>
> The debugger comes on the CD version, available from:
>
>     www.digitalmars.com/shop.html
>
> -Walter

July 03, 2001
Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).

Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
>Hmm, that's strange because this is import library generated as a result of implib. Does this means that implib is buggy? .DLL for which I'm generating import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get this:
>
>C:\dm\bin\..\lib\SNN.lib(constart)
> Error 83: Illegal frame on start address
>OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
output
>
>main.obj(main)
> Error 116: NEAR call to IMPORT at Relative 00013H  from
> Segment _TEXT
> FRAME  = Frame of Group FLAT 0000
> TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
>QApplication::QApplication(int &,char **))
>00000H
> FIXUPP Type = 32-bit Conditional JMP
>
>Any ideas?
>Darin
>
>Walter wrote:
>
>> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
>> >Trying to link some libraries generates:
>> >
>> > Warning 140: Library probably needs FIXLIB
>> >
>> >Any idea where to find FIXLIB and what does this mean?
>>
>> I believe it means that the symbol table in the .LIB file is corrupted.
What
>> .LIB file is it?
>>
>> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
>>
>> The debugger comes on the CD version, available from:
>>
>>     www.digitalmars.com/shop.html
>>
>> -Walter
>


July 03, 2001
I guess he need to compile his code with the -WA compiler switch thrown so that the proper code is being generated for functions that presist in the .DLL's being used.

Jan



Walter wrote:

> Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).
>
> Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
> >Hmm, that's strange because this is import library generated as a result of implib. Does this means that implib is buggy? .DLL for which I'm generating import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get this:
> >
> >C:\dm\bin\..\lib\SNN.lib(constart)
> > Error 83: Illegal frame on start address
> >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
> output
> >
> >main.obj(main)
> > Error 116: NEAR call to IMPORT at Relative 00013H  from
> > Segment _TEXT
> > FRAME  = Frame of Group FLAT 0000
> > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
> >QApplication::QApplication(int &,char **))
> >00000H
> > FIXUPP Type = 32-bit Conditional JMP
> >
> >Any ideas?
> >Darin
> >
> >Walter wrote:
> >
> >> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
> >> >Trying to link some libraries generates:
> >> >
> >> > Warning 140: Library probably needs FIXLIB
> >> >
> >> >Any idea where to find FIXLIB and what does this mean?
> >>
> >> I believe it means that the symbol table in the .LIB file is corrupted.
> What
> >> .LIB file is it?
> >>
> >> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
> >>
> >> The debugger comes on the CD version, available from:
> >>
> >>     www.digitalmars.com/shop.html
> >>
> >> -Walter
> >

July 03, 2001
I don't think I'm trying to do this. I have small example (few lines) that
contains few calls to .DLL exported functions. I'm compiling this code with
Digital Mars and I'm linking resulting .OBJ file with import library generated
by IMPLIB. Does any of this sound like trying to do JMP to import? My feeling is
that Digital Mars generates near calls (instead of far calls) to functions
supplied by the import library. And because import library is quite big, linker
cannot resolve references even by reordering segments. I've been looking for DM
switch to force far calls for functions in other modules(.obj or .lib) but I was
not able to find any. I'll try to add __declspec(dllimport) to .h files supplied
with .dll and this may be will solve the problem but I don't think that explicit
__declspec(dllimport) is needed in other compilers. Does it make sense to add
new switch to the compiler that will presume __declspec(dllimport) for all
unresolved function refernces during compilation?
Darin

Walter wrote:

> Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).
>
> Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
> >Hmm, that's strange because this is import library generated as a result of implib. Does this means that implib is buggy? .DLL for which I'm generating import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get this:
> >
> >C:\dm\bin\..\lib\SNN.lib(constart)
> > Error 83: Illegal frame on start address
> >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
> output
> >
> >main.obj(main)
> > Error 116: NEAR call to IMPORT at Relative 00013H  from
> > Segment _TEXT
> > FRAME  = Frame of Group FLAT 0000
> > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
> >QApplication::QApplication(int &,char **))
> >00000H
> > FIXUPP Type = 32-bit Conditional JMP
> >
> >Any ideas?
> >Darin
> >
> >Walter wrote:
> >
> >> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
> >> >Trying to link some libraries generates:
> >> >
> >> > Warning 140: Library probably needs FIXLIB
> >> >
> >> >Any idea where to find FIXLIB and what does this mean?
> >>
> >> I believe it means that the symbol table in the .LIB file is corrupted.
> What
> >> .LIB file is it?
> >>
> >> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
> >>
> >> The debugger comes on the CD version, available from:
> >>
> >>     www.digitalmars.com/shop.html
> >>
> >> -Walter
> >

July 03, 2001
That's why I wrote to throw the -WA switch for you own code and make sure the header files act to it in the right way. The functions in the header file have to be declared __declspec(dllimport). The -WA switch generates .EXE code that uses a .DLL....

Jan



Darin Peshev wrote:

> I don't think I'm trying to do this. I have small example (few lines) that
> contains few calls to .DLL exported functions. I'm compiling this code with
> Digital Mars and I'm linking resulting .OBJ file with import library generated
> by IMPLIB. Does any of this sound like trying to do JMP to import? My feeling is
> that Digital Mars generates near calls (instead of far calls) to functions
> supplied by the import library. And because import library is quite big, linker
> cannot resolve references even by reordering segments. I've been looking for DM
> switch to force far calls for functions in other modules(.obj or .lib) but I was
> not able to find any. I'll try to add __declspec(dllimport) to .h files supplied
> with .dll and this may be will solve the problem but I don't think that explicit
> __declspec(dllimport) is needed in other compilers. Does it make sense to add
> new switch to the compiler that will presume __declspec(dllimport) for all
> unresolved function refernces during compilation?
> Darin
>
> Walter wrote:
>
> > Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).
> >
> > Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
> > >Hmm, that's strange because this is import library generated as a result of implib. Does this means that implib is buggy? .DLL for which I'm generating import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get this:
> > >
> > >C:\dm\bin\..\lib\SNN.lib(constart)
> > > Error 83: Illegal frame on start address
> > >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
> > output
> > >
> > >main.obj(main)
> > > Error 116: NEAR call to IMPORT at Relative 00013H  from
> > > Segment _TEXT
> > > FRAME  = Frame of Group FLAT 0000
> > > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
> > >QApplication::QApplication(int &,char **))
> > >00000H
> > > FIXUPP Type = 32-bit Conditional JMP
> > >
> > >Any ideas?
> > >Darin
> > >
> > >Walter wrote:
> > >
> > >> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
> > >> >Trying to link some libraries generates:
> > >> >
> > >> > Warning 140: Library probably needs FIXLIB
> > >> >
> > >> >Any idea where to find FIXLIB and what does this mean?
> > >>
> > >> I believe it means that the symbol table in the .LIB file is corrupted.
> > What
> > >> .LIB file is it?
> > >>
> > >> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
> > >>
> > >> The debugger comes on the CD version, available from:
> > >>
> > >>     www.digitalmars.com/shop.html
> > >>
> > >> -Walter
> > >

July 03, 2001
Near and far calls? Are you working with 16 bit code or 32 bit code? It's beginning to sound like you are attempting to mix 16 and 32 bit code, which will inevitably produce bizarre linker messages.

-Walter

Darin Peshev wrote in message <3B421415.767E170D@usa.net>...
>I don't think I'm trying to do this. I have small example (few lines) that contains few calls to .DLL exported functions. I'm compiling this code with Digital Mars and I'm linking resulting .OBJ file with import library
generated
>by IMPLIB. Does any of this sound like trying to do JMP to import? My
feeling is
>that Digital Mars generates near calls (instead of far calls) to functions supplied by the import library. And because import library is quite big,
linker
>cannot resolve references even by reordering segments. I've been looking
for DM
>switch to force far calls for functions in other modules(.obj or .lib) but
I was
>not able to find any. I'll try to add __declspec(dllimport) to .h files
supplied
>with .dll and this may be will solve the problem but I don't think that
explicit
>__declspec(dllimport) is needed in other compilers. Does it make sense to
add
>new switch to the compiler that will presume __declspec(dllimport) for all
>unresolved function refernces during compilation?
>Darin
>
>Walter wrote:
>
>> Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).
>>
>> Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
>> >Hmm, that's strange because this is import library generated as a result
of
>> >implib. Does this means that implib is buggy? .DLL for which I'm
generating
>> >import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get
this:
>> >
>> >C:\dm\bin\..\lib\SNN.lib(constart)
>> > Error 83: Illegal frame on start address
>> >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit
Segmented
>> output
>> >
>> >main.obj(main)
>> > Error 116: NEAR call to IMPORT at Relative 00013H  from
>> > Segment _TEXT
>> > FRAME  = Frame of Group FLAT 0000
>> > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
>> >QApplication::QApplication(int &,char **))
>> >00000H
>> > FIXUPP Type = 32-bit Conditional JMP
>> >
>> >Any ideas?
>> >Darin
>> >
>> >Walter wrote:
>> >
>> >> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
>> >> >Trying to link some libraries generates:
>> >> >
>> >> > Warning 140: Library probably needs FIXLIB
>> >> >
>> >> >Any idea where to find FIXLIB and what does this mean?
>> >>
>> >> I believe it means that the symbol table in the .LIB file is
corrupted.
>> What
>> >> .LIB file is it?
>> >>
>> >> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
>> >>
>> >> The debugger comes on the CD version, available from:
>> >>
>> >>     www.digitalmars.com/shop.html
>> >>
>> >> -Walter
>> >
>


July 03, 2001
.DLL that I'm trying to use us 32bit library (PE header contains Flags 210E which means - executable bacwards 32bit library. Same application works perfect when compiled and linked with VC++ 6.0). Code that calls functions in the library is CPP source. With this two things as a start point why do I get this error message? (See below). My OS is Windows 2000 and I read carefully through the DM documentation for different options controling compilation and linking. However I was not able to find anything that leads to :

>> >
>> >C:\dm\bin\..\lib\SNN.lib(constart)
>> > Error 83: Illegal frame on start address
>> >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit
Segmented
>> output
>> >
>> >main.obj(main)
>> > Error 116: NEAR call to IMPORT at Relative 00013H  from
>> > Segment _TEXT
>> > FRAME  = Frame of Group FLAT 0000
>> > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
>> >QApplication::QApplication(int &,char **))
>> >00000H
>> > FIXUPP Type = 32-bit Conditional JMP

Is it clear this time?
Darin


Walter wrote:

> Near and far calls? Are you working with 16 bit code or 32 bit code? It's beginning to sound like you are attempting to mix 16 and 32 bit code, which will inevitably produce bizarre linker messages.
>
> -Walter
>
> Darin Peshev wrote in message <3B421415.767E170D@usa.net>...
> >I don't think I'm trying to do this. I have small example (few lines) that contains few calls to .DLL exported functions. I'm compiling this code with Digital Mars and I'm linking resulting .OBJ file with import library
> generated
> >by IMPLIB. Does any of this sound like trying to do JMP to import? My
> feeling is
> >that Digital Mars generates near calls (instead of far calls) to functions supplied by the import library. And because import library is quite big,
> linker
> >cannot resolve references even by reordering segments. I've been looking
> for DM
> >switch to force far calls for functions in other modules(.obj or .lib) but
> I was
> >not able to find any. I'll try to add __declspec(dllimport) to .h files
> supplied
> >with .dll and this may be will solve the problem but I don't think that
> explicit
> >__declspec(dllimport) is needed in other compilers. Does it make sense to
> add
> >new switch to the compiler that will presume __declspec(dllimport) for all
> >unresolved function refernces during compilation?
> >Darin
> >
> >Walter wrote:
> >
> >> Looks like you're trying to do a JMP to an import. That doesn't work on Win32 - all imports are done with a layer of indirection. That's why imported symbols have to be declared with __declspec(dllimport).
> >>
> >> Darin Peshev wrote in message <3B41E0B9.DC5D3587@usa.net>...
> >> >Hmm, that's strange because this is import library generated as a result
> of
> >> >implib. Does this means that implib is buggy? .DLL for which I'm
> generating
> >> >import library is quite big - 2.7mb. Could this be a problem? I tried to generate .DEF file out of .DLL but when I try to link with it I get
> this:
> >> >
> >> >C:\dm\bin\..\lib\SNN.lib(constart)
> >> > Error 83: Illegal frame on start address
> >> >OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit
> Segmented
> >> output
> >> >
> >> >main.obj(main)
> >> > Error 116: NEAR call to IMPORT at Relative 00013H  from
> >> > Segment _TEXT
> >> > FRAME  = Frame of Group FLAT 0000
> >> > TARGET = External Symbol ??0QApplication@@QAE@AAHPAPAD@Z (syscall
> >> >QApplication::QApplication(int &,char **))
> >> >00000H
> >> > FIXUPP Type = 32-bit Conditional JMP
> >> >
> >> >Any ideas?
> >> >Darin
> >> >
> >> >Walter wrote:
> >> >
> >> >> Darin Peshev wrote in message <3B4111EB.7BF3DDD2@usa.net>...
> >> >> >Trying to link some libraries generates:
> >> >> >
> >> >> > Warning 140: Library probably needs FIXLIB
> >> >> >
> >> >> >Any idea where to find FIXLIB and what does this mean?
> >> >>
> >> >> I believe it means that the symbol table in the .LIB file is
> corrupted.
> >> What
> >> >> .LIB file is it?
> >> >>
> >> >> >Is there a decent debugger that can debug DigitalMars compiled .EXE?
> >> >>
> >> >> The debugger comes on the CD version, available from:
> >> >>
> >> >>     www.digitalmars.com/shop.html
> >> >>
> >> >> -Walter
> >> >
> >

« First   ‹ Prev
1 2