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'.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top