0

我正在使用 Visual C 2008 Express 将第 3 方软件从 Linux 移植到 Windows。

我只有函数'wctype'有问题。它在 %VCDIR%/include/wctype.h 文件中声明如下:

 _MRTIMP2 wctype_t __cdecl wctype (const char *);

但是,当尝试链接 a 时出现以下错误:

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

测试代码如下:

#include <wctype.h>

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

正如您在错误消息中看到的,代码编译正常,但无法链接。

该怎么办?我不是这个软件的开发者,所以我不想用另一个替换`wctype'函数,因为它会混淆原始开发者。

谢谢你的耐心。

PS 我还用 Dependency Walker 查看了 MSVCRT90.DLL 文件的导入表,并且没有 `wctype' 函数。

4

3 回答 3

1

您需要与此处提到的 libcp.lib 链接:

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

于 2010-01-01T18:30:17.270 回答
1

试试这个:

cl test.c /link MSVCPRT.LIB

于 2010-01-01T18:48:30.323 回答
0

如果您使用 msvcprt.lib,您将不得不根据您的设置重新分发一个 DLL(例如 MSVCP90.dll)。如果您不想重新分发,请尝试以下操作:

cl test.c /link libcpmt.lib

链接到的所有库的列表都在这里(查看底部):http: //msdn.microsoft.com/en-us/library/abx4dbyh.aspx

于 2010-05-21T22:19:36.343 回答