当我尝试在Windows10 x64上构建它时遇到问题。
我的环境是
MingGW 3.20
CMake 3.3.0
libzip-1.0.1我所做的是在libzip site中下载项目,打开CLion集成开发环境(最新版本)并尝试编译。
整个构建过程都有错误,可以在链接中找到。http://pastebin.com/KTPtm5z3
许多未声明的变量显示为错误:
error: 'EOPNOTSUPP' undeclared (first use in this function)是什么导致了这个问题?原因是什么?
我可以在这个存储库mirror repo libzip v0.9中编译库版本的libzip,但我想使用最新版本的libzip。
发布于 2015-08-21 13:12:05
libzip开发人员已经意识到了这个问题,但似乎很难找到正确的修复程序,因为他们都不是很熟悉Windows或MinGW:http://nih.at/listarchive/libzip-discuss/msg00559.html
我自己也不熟悉,但最近我成功地在Windows7(没有MinGW)上使用这个答案编译了libzip (也可以看看我对这个答案的评论):https://stackoverflow.com/a/30245321/784669
最后,由于您可能希望立即运行这些程序,请尝试执行以下操作:
在
swprintf的调用中,请尝试删除lib/zip_source_win32w.c中len函数的第二个参数,因为您的编译器似乎假定以下代码是GetFileSizeEx的临时实现(来源:https://sourceforge.net/p/tdm-gcc/bugs/250/):_
bool GetFileSizeEx(HANDLE hFile, PLARGE_INTEGER fsize){
LPDWORD tSize;
DWORD t = fsize->HighPart;
*tSize = t;
int ret = GetFileSize(hFile, tSize);
fsize->HighPart = *tSize;
delete tSize;
return ret;
}stackoverflow,这是来自
GetFileSizeEx的另一个建议,所以问题可能出在你的https://stackoverflow.com/a/28028376/784669版本上。实际上,在winbase.h中,它规定只在_WIN32_WINNT >= 0x0500的情况下定义GetFileSizeEx。可能你的Windows版本太旧了,或者你需要:_
#define _WIN32_WINNT 0x0500祝好运!
发布于 2015-08-23 06:42:33
使用邮件列表:http://www.nih.at/listarchive/libzip-discuss/
在Windows上的构建过程中包含了几项更改。
结束于此的http://nih.at/listarchive/libzip-discuss/msg00574.html
最终的结果不能再好了!他们解决了所有的问题,我可以在Windows中构建libzip。
谢谢你们所有人。
https://stackoverflow.com/questions/32125326
复制相似问题