Question

Je suis le portage du logiciel 3ème partie de Linux à Windows en utilisant Visual C 2008 Express.

J'ai du mal uniquement avec la fonction `wctype ». Il est déclaré en% VCDIR% / include / fichier wctype.h comme suit:

 _MRTIMP2 wctype_t __cdecl wctype (const char *);

Mais, en essayant de lier un avoir l'erreur suivante:

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

Le code de test est le suivant:

#include <wctype.h>

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

Comme vous pouvez le voir dans le message d'erreur, le code compile OK, mais ne peut pas lier.

Que faire? Je ne suis pas un développeur de ce logiciel, donc je ne veux pas remplacer la fonction `wctype » avec un autre, car il peut confondre les développeurs originaux.

Merci pour la patience.

P.S. Je l'ai aussi regardé la table d'importation de fichier MSVCRT90.DLL avec Dependency Walker et il n'y a pas de fonction `wctype ».

Était-ce utile?

La solution

Essayez ceci:

cl test.c /link MSVCPRT.LIB

Autres conseils

Vous devez créer un lien avec libcp.lib comme mentionné ici:

http://msdn.microsoft.com/ fr-fr / bibliothèque / aa246681 (VS.60) .aspx

Si vous utilisez MSVCPRT.lib vous devez redistribuer une DLL en fonction de votre configuration (par exemple msvcp90.dll). Si vous ne voulez pas essayer de redistribuer:

cl test.c /link libcpmt.lib

Une liste de toutes les bibliothèques à lier sont ici (voir en bas): http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top