Pregunta

Estoy portar software de 3 ª parte de Linux a Windows utilizando Visual C 2008 Express.

tengo problemas con la única función `wctype'. Se declaró en el archivo% VCDIR% / include / wctype.h de la siguiente manera:

 _MRTIMP2 wctype_t __cdecl wctype (const char *);

Sin embargo, cuando se trata de vincular una tienen el siguiente error:

C:\test>cl test.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

test.c
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:test.exe
test.obj
test.obj : error LNK2019: unresolved external symbol _wctype referenced in function _main
test.exe : fatal error LNK1120: 1 unresolved externals

El código de prueba es el siguiente:

#include <wctype.h>

int
main (void)
{
  return (int) wctype ("alpha");
}

Como se puede ver en el mensaje de error, el código se compila bien, pero no puede enlace.

¿Qué hacer? No soy un desarrollador de este software, por lo que no quiero reemplazar la función `wctype' con otro, ya que puede confundir a los desarrolladores originales.

Gracias por la paciencia.

P.S. También he mirado tabla de importación del archivo MSVCRT90.DLL con Dependency Walker y no hay función `wctype'.

¿Fue útil?

Solución

Prueba esto:

cl test.c /link MSVCPRT.LIB

Otros consejos

necesidad de vincular con libcp.lib como se ha mencionado aquí:

http://msdn.microsoft.com/ en-us / library / aa246681 (VS.60) .aspx

Si utiliza MSVCPRT.lib tendrá que redistribuir una DLL dependiendo de su configuración (por ejemplo msvcp90.dll). Si no desea redistribuir intente lo siguiente:

cl test.c /link libcpmt.lib

Una lista de todas las bibliotecas de enlace a está aquí (la mirada en la parte inferior):

scroll top