Pergunta

Estou portando software de terceiros do Linux para o Windows usando o Visual C 2008 Express.

Tenho problemas apenas com a função `wctype '. É declarado em %vcdir %/incluir/wctype.h arquivo da seguinte forma:

 _MRTIMP2 wctype_t __cdecl wctype (const char *);

Mas, ao tentar vincular um erro seguinte:

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

O código de teste está seguindo:

#include <wctype.h>

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

Como você pode ver na mensagem de erro, o código está compilando OK, mas não pode vincular.

O que fazer? Não sou um desenvolvedor deste software, por isso não quero substituir a função `wctype 'por outro, porque pode confundir desenvolvedores originais.

Obrigado pela paciência.

PS Eu também olhei para a tabela de importação do msvcrt90.dll com Walker de dependência e não há função 'WCTYPE'.

Foi útil?

Solução

Experimente isso:

cl test.c /link MSVCPRT.LIB

Outras dicas

Você precisa se vincular ao libcp.lib, conforme mencionado aqui:

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

Se você usar msvcprt.lib, precisará redistribuir uma DLL dependendo da sua configuração (por exemplo, msvcp90.dll). Se você não quiser redistribuir, tente isto:

cl test.c /link libcpmt.lib

Uma lista de todas as bibliotecas a que vincular estão aqui (veja a parte inferior): http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top