我正在将Python库移动到Windows平台,这取决于某些c代码。 但是,我无法在Windows下构建它,并获得:
util.obj : error LNK2019: unresolved external symbol _strtoll
错误的代码是:
x_space[j].index = (INT64)strtoll(idx,&endptr,10);
我的编译器是VS2010,在XP 32bit下使用。 我的make文件是:
CXX = cl.exe
CFLAGS = /nologo /O2 /EHsc /I. /D _WIN32 /D _CRT_SECURE_NO_DEPRECATE
TARGET = .
lib: util.c
$(CXX) $(CFLAGS) -LD util.c /Iliblinear -Fe$(TARGET)\util -link -DEF:util.def
我该如何解决这个问题?
答案 0 :(得分:2)
Microsoft标准C库不包含strtoll()
的定义,该定义从C字符串转换为long long。
MS提供另一个名为_strtoi64()
的函数,该函数执行相同的操作,并且具有完全相同的签名 - 只需在MSVC下使用它或为strtoll
定义宏。
__int64 _strtoi64(
const char *nptr,
char **endptr,
int base
);