Wo liegt wctype in Visual C 2008 Express?
-
22-09-2019 - |
Frage
Ich bin 3rd-Party-Software von Linux auf Windows zu portieren Visual C 2008 Express verwendet wird.
Ich habe Probleme nur mit der Funktion `wctype‘. Es erklärt in% VCDIR% / include / wctype.h Datei wie folgt:
_MRTIMP2 wctype_t __cdecl wctype (const char *);
Aber, wenn sie versuchen, eine der folgenden Fehler zu verknüpfen haben:
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
Der Testcode folgt:
#include <wctype.h>
int
main (void)
{
return (int) wctype ("alpha");
}
Wie Sie Fehlermeldung sehen können, Code OK kompiliert, kann aber nicht Link.
Was ist zu tun? Ich bin kein Entwickler dieser Software, so dass ich `wctype‘ Funktion mit einer anderen nicht ersetzen will, weil es ursprüngliche Entwickler verwirren kann.
Vielen Dank für die Geduld.
P. S. Ich habe auch bei MSVCRT90.DLL-Datei der Importtabelle mit Dependency Walker und es gibt keine `wctype‘ Funktion betrachtet.
Lösung
Versuchen Sie diese:
cl test.c /link MSVCPRT.LIB
Andere Tipps
Sie müssen sich mit LIBCP.lib zu Link wie hier erwähnt:
http://msdn.microsoft.com/ en-us / library / aa246681 (VS.60) aspx
Wenn Sie MSVCPRT.lib verwenden Sie eine DLL auf Ihrem Setup neu verteilen müssen abhängig (z msvcp90.dll). Wenn Sie nicht neu zu verteilen wollen versuchen Sie dies:
cl test.c /link libcpmt.lib
Eine Liste aller Bibliotheken Link zu ist hier (siehe unten): http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx