Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
May 08, 2003 linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
I can't link a Borland C++ 3.1 library to link my DOS executable. Is it possible at all? I use one of library functions in my "main". The linker says that it doesn't see the function, although it doesn't complain about the format of .lib file. Are there any linker (compiler) switches that make things work? Michal |
May 08, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to Michał Kandulski | What are you trying to do? Link a Borland C++ 3.1 DOS library into a Digital Mars
C++ generated DOS executable?
Which functions do you need???
Micha³ Kandulski wrote:
> I can't link a Borland C++ 3.1 library to link my DOS executable.
>
> Is it possible at all?
>
> I use one of library functions in my "main". The linker says that it doesn't see the function, although it doesn't complain about the format of .lib file.
>
> Are there any linker (compiler) switches that make things work?
>
> Michal
--
ManiaC++
Jan Knepper
|
May 08, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jan Knepper | >>I can't link a Borland C++ 3.1 library to link my DOS executable.
>>
>>Is it possible at all?
>>
>>I use one of library functions in my "main". The linker says that it doesn't see
>>the function, although it doesn't complain about the format of .lib file.
>>
>>Are there any linker (compiler) switches that make things work?
>>
>>Michal
>
> What are you trying to do? Link a Borland C++ 3.1 DOS library into a Digital Mars
> C++ generated DOS executable?
> Which functions do you need???
>
This is what I'm trying to do:
1) I've got a commercial library (designed for a laser bar code scanner).
It works fine with Borland C++ 3.1 compiler.
2) I need to meke an 16 bit DOS executable.
3) I'm trying to make it with Digital Mars C++ compiler (because there
are some reasons why I don't want to use the Borland compiler).
4) While I link the library with an OBJ that contains a call to a certain
function, the linker does not see the function, although the library
contains it for sure.
That's my problem.
Michal
|
May 08, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to user | user@domain.invalid wrote: > >>I can't link a Borland C++ 3.1 library to link my DOS executable. > >> > >>Is it possible at all? > >> > >>I use one of library functions in my "main". The linker says that it doesn't see > >>the function, although it doesn't complain about the format of .lib file. > >> > >>Are there any linker (compiler) switches that make things work? > >> > >>Michal > > > > What are you trying to do? Link a Borland C++ 3.1 DOS library into a Digital Mars > > C++ generated DOS executable? > > Which functions do you need??? > > > > This is what I'm trying to do: > > 1) I've got a commercial library (designed for a laser bar code scanner). > It works fine with Borland C++ 3.1 compiler. The commercial library not come with a library for Zortech/Symantec or Microsoft? If so, try to use Symantec or Zortech, than Microsoft... > 2) I need to meke an 16 bit DOS executable. > 3) I'm trying to make it with Digital Mars C++ compiler (because there > are some reasons why I don't want to use the Borland compiler). There are many obvious reasons for that. ;-) > 4) While I link the library with an OBJ that contains a call to a certain > function, the linker does not see the function, although the library > contains it for sure. Is it C or C++? Can you list the functions in the library with tbe LIB (Digital Mars LIB.exe) command line tool? Have you confirmed the calling convention/declaration of the functions? -- ManiaC++ Jan Knepper |
May 08, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to user | user@domain.invalid a écrit: . . . > 4) While I link the library with an OBJ that contains a call to a certain > function, the linker does not see the function, although the library > contains it for sure. > > That's my problem. > > Michal > check name mangling or leading underscore. generate the assembly listing (.cod) to see what is the real name of the function the compiler is calling. you can also generate a .map file. hope the functions in the .lib are pure C (no name mangling). declare the function as extern "C" example: extern "C" int myfunc(int myarg); roland |
May 09, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to roland | roland wrote:
> > 4) While I link the library with an OBJ that contains a call to a certain
> > function, the linker does not see the function, although the library
> > contains it for sure.
> >
> > That's my problem.
> >
> > Michal
> >
>
> check name mangling or leading underscore.
> generate the assembly listing (.cod) to see what is the real name of the
> function the compiler is calling.
> you can also generate a .map file.
> hope the functions in the .lib are pure C (no name mangling).
> declare the function as extern "C"
> example:
> extern "C" int myfunc(int myarg);
>
>
> roland
That was it! How could I forget?! Thanks!
Michal
|
May 09, 2003 Re: linking Borland C++ 3.1 libraries in 16 bit DOS mode | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jan Knepper | Jan Knepper wrote: >>1) I've got a commercial library (designed for a laser bar code scanner). >> It works fine with Borland C++ 3.1 compiler. > > The commercial library not come with a library for Zortech/Symantec or Microsoft? > If so, try to use Symantec or Zortech, than Microsoft... > I would'n bother if I had such. > [...] > > Is it C or C++? > Can you list the functions in the library with tbe LIB (Digital Mars LIB.exe) command > line tool? > Have you confirmed the calling convention/declaration of the functions? It was C indeed. Thanks for help. Michal |
Copyright © 1999-2021 by the D Language Foundation