Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

What format is the .lib file in the SDK?

May
120
1
Normally, I use gcc (mingw) as my C compiler, so I am not surprised
that the TakeCmd.lib file supplied with the SDK isn't of any use to
me. But I just now tried MS C (specifically, MS Visual C++ 2008
Express edition from the command line, only to find that it doesn't
seem to work with that, either!!!


>cl /LD /O2 Lua.c /I sdk /I \Utils\Lua\include sdk\TakeCmd.lib \Utils\Lua\lib\lua51.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

Lua.c
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.

/out:Lua.dll
/dll
/implib:Lua.lib
Lua.obj
sdk\TakeCmd.lib
\Utils\Lua\lib\lua51.lib
Creating library Lua.lib and object Lua.exp
Lua.obj : error LNK2019: unresolved external symbol
_QueryIsFileUnicode@4 referenced in function _StdinIsUnicode
Lua.obj : error LNK2019: unresolved external symbol
_QueryUnicodeOutput@0 referenced in function _StdinIsUnicode
Lua.obj : error LNK2019: unresolved external symbol _QueryIsConsole@4
referenced in function _StdinIsUnicode
Lua.obj : error LNK2019: unresolved external symbol _encode referenced
in function _luaU_reader
Lua.obj : error LNK2019: unresolved external symbol _ReadStdInput
referenced in function _luaU_reader
Lua.obj : error LNK2019: unresolved external symbol _FreeMem@4
referenced in function _luaU_reader
Lua.obj : error LNK2019: unresolved external symbol _Qprintf
referenced in function _luaU_printerr
Lua.obj : error LNK2019: unresolved external symbol _decode referenced
in function _luaU_printerr
Lua.obj : error LNK2019: unresolved external symbol _ASCIIToUnicode@12
referenced in function __lua_version@4
Lua.obj : error LNK2019: unresolved external symbol _Command@8
referenced in function _tcc_exec
Lua.obj : error LNK2019: unresolved external symbol
_StripEnclosingQuotes@4 referenced in function _create_args

Lua.obj : error LNK2019: unresolved external symbol _NextArgument@8
referenced in function _create_args
Lua.obj : error LNK2019: unresolved external symbol _NthArgument@16
referenced in function _create_args
Lua.obj : error LNK2019: unresolved external symbol _Printf referenced
in function _lua@4
Lua.dll : fatal error LNK1120: 14 unresolved externals

So what precisely is TakeCmd.lib meant to be used for? And how should
I use the SDK without needing to manually hack an import library for
TakeCmd.dll?

Paul.
 
The functions in TakeCmd.lib are decorated names. As a simple test, try
renaming Lua.c to Lua.cpp and recompiling and see what happens.

-Scott

"p.f.moore" <> wrote on 07/10/2008 04:33:43 PM:


> Normally, I use gcc (mingw) as my C compiler, so I am not surprised
> that the TakeCmd.lib file supplied with the SDK isn't of any use to
> me. But I just now tried MS C (specifically, MS Visual C++ 2008
> Express edition from the command line, only to find that it doesn't
> seem to work with that, either!!!
>


> Quote:
>
> >cl /LD /O2 Lua.c /I sdk /I \Utils\Lua\include sdk\TakeCmd.lib
> \Utils\Lua\lib\lua51.lib
>
> Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.
> 08 for 80x86
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> Lua.c
> Microsoft (R) Incremental Linker Version 9.00.21022.08
> Copyright (C) Microsoft Corporation. All rights reserved.
>
> /out:Lua.dll
> /dll
> /implib:Lua.lib
> Lua.obj
> sdk\TakeCmd.lib
> \Utils\Lua\lib\lua51.lib
> Creating library Lua.lib and object Lua.exp
> Lua.obj : error LNK2019: unresolved external symbol
> _QueryIsFileUnicode@4 referenced in function _StdinIsUnicode
> Lua.obj : error LNK2019: unresolved external symbol
> _QueryUnicodeOutput@0 referenced in function _StdinIsUnicode
> Lua.obj : error LNK2019: unresolved external symbol _QueryIsConsole@4
> referenced in function _StdinIsUnicode
> Lua.obj : error LNK2019: unresolved external symbol _encode referenced
> in function _luaU_reader
> Lua.obj : error LNK2019: unresolved external symbol _ReadStdInput
> referenced in function _luaU_reader
> Lua.obj : error LNK2019: unresolved external symbol _FreeMem@4
> referenced in function _luaU_reader
> Lua.obj : error LNK2019: unresolved external symbol _Qprintf
> referenced in function _luaU_printerr
> Lua.obj : error LNK2019: unresolved external symbol _decode referenced
> in function _luaU_printerr
> Lua.obj : error LNK2019: unresolved external symbol _ASCIIToUnicode@12
> referenced in function __lua_version@4
> Lua.obj : error LNK2019: unresolved external symbol _Command@8
> referenced in function _tcc_exec
> Lua.obj : error LNK2019: unresolved external symbol
> _StripEnclosingQuotes@4 referenced in function _create_args
>
> Lua.obj : error LNK2019: unresolved external symbol _NextArgument@8
> referenced in function _create_args
> Lua.obj : error LNK2019: unresolved external symbol _NthArgument@16
> referenced in function _create_args
> Lua.obj : error LNK2019: unresolved external symbol _Printf referenced
> in function _lua@4
> Lua.dll : fatal error LNK1120: 14 unresolved externals
>
> So what precisely is TakeCmd.lib meant to be used for? And how should
> I use the SDK without needing to manually hack an import library for
> TakeCmd.dll?
>
> Paul.
>
 
2008/7/10 samintz <>:

> The functions in TakeCmd.lib are decorated names. As a simple test, try
> renaming Lua.c to Lua.cpp and recompiling and see what happens.

That worked, thanks. I thought I'd done the equivalent by specifying
/Tp, but I must have got it wrong :-(

It would still be nice to have a plain C version, for portability, but
my ugly hacks do that.

Paul.
 
p.f.moore wrote:

> 2008/7/10 samintz <>:
>
> Quote:
> > The functions in TakeCmd.lib are decorated names. As a simple test, try
> > renaming Lua.c to Lua.cpp and recompiling and see what happens.
>
> That worked, thanks. I thought I'd done the equivalent by specifying
> /Tp, but I must have got it wrong :-(
>
> It would still be nice to have a plain C version, for portability, but
> my ugly hacks do that.

The disadvantage of a plain C version is that the rest of TCMD and TCC
then wouldn't be able to use TakeCmd.dll (which is, after all, its
reason for being!).

Rex Conn
JP Software
 
2008/7/11 rconn <>:

> p.f.moore wrote:
> The disadvantage of a plain C version is that the rest of TCMD and TCC
> then wouldn't be able to use TakeCmd.dll (which is, after all, its
> reason for being!).

I was thinking of a plain C import library *as well* as the C++
version. After all, DLLs are supposed to be callable cross-language...

It's not a huge issue, as I have hacks that work for me (the @4 style
decorations take some fiddling to get rid of, the rest isn't much
problem).

Paul.
 
Back
Top