最近在折腾一个Python库到windows的迁移,底层用了一些C依赖,各种不懂。
错误栈显示如下:
util.obj : error LNK2019: 无法解析的外部符号 _strtoll,该符号在函数 _read_problem 中被引用
.\util.dll : fatal error LNK1120: 1 个无法解析的外部命令
NMAKE : fatal error U1077: “"C:\Program Files\Microsoft Visual Studio 10.0\VC\BIN\cl.exe"”: 返回代码“0x2
报错的代码在这里:
x_space[j].index = (INT64)strtoll(idx,&endptr,10);
用的编译器是VS2010,Makefile是这么写的:
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
此前用过一次mingw,是能通过的。
求问怎么解决VS2010下的编译问题?
微软的标准C库并不包含strtoll()这样的将C的字符串转化为long long型的函数,但微软提供了另一个替代品:_strtoi64()
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。