Dove si trova wctype in Visual C 2008 Express?
-
22-09-2019 - |
Domanda
Sono porting software 3a parte da Linux a Windows utilizzando Visual C 2008 Express.
Ho problemi solo con la funzione `wctype'. E 'dichiarato in% VCDIR% / include file / wctype.h come segue:
_MRTIMP2 wctype_t __cdecl wctype (const char *);
Ma quando si cerca di collegare un avere il seguente errore:
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
Il codice di prova è il seguente:
#include <wctype.h>
int
main (void)
{
return (int) wctype ("alpha");
}
Come si può vedere nel messaggio di errore, il codice è la compilazione OK, ma non si può creare un collegamento.
Che fare? Io non sono uno sviluppatore di questo software, in modo da non voglio sostituire `funzione wctype' con un altro, perché può confondere sviluppatori originali.
Grazie per la pazienza.
P.S. Ho anche guardato tabella di importazione del file MSVCRT90.DLL con Dependency Walker e non ci sono funzione `wctype'.
Soluzione
Prova questo:
cl test.c /link MSVCPRT.LIB
Altri suggerimenti
È necessario collegare con LIBCP.LIB come accennato qui:
http://msdn.microsoft.com/ it-it / library / aa246681 (VS.60) aspx
Se si utilizza MSVCPRT.lib dovrete ridistribuire una DLL a seconda della configurazione (ad esempio MSVCP90.dll). Se non si vuole ridistribuire provare questo:
cl test.c /link libcpmt.lib
Un elenco di tutte le librerie a collegamento a qui (vedi in basso): http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx