MinGW下编译curl-7.60.0时, 发生ERROR_FILE_NOT_FOUND undeclared
在编译curl-7.60.0时, 遇到ERROR_FILE_NOT_FOUND undeclared 这个情况, 就没法编译成功!!
下载了以往的版本, 发现是从curl-7.59.0版本开始才有 tool_filetime.c, 小弟为了项目进度, 当时选择了使用curl-7.58.0版本的
现在就回过头来研究一下这个问题, 首先, 我们打开tool_filetime.c 这个文件看看其内容, 其中关键的地方是这么一段:
利用Notopad++在curl-7.60.0整个目录下的所有文件搜索 ERROR_FILE_NOT_FOUND
结果会发现只有在tool_filetime.c中的这个位置使用到
这样修改了其中的ERROR_FILE_NOT_FOUND也不会影响到其他地方, 此时再回过头来看看这段代码的代码, 看其中的注释:
#if defined(WIN32) && (SIZEOF_CURL_OFF_T >= 8)
HANDLE hfile; hfile = CreateFileA(filename, FILE_READ_ATTRIBUTES,
(FILE_SHARE_READ | FILE_SHARE_WRITE |
FILE_SHARE_DELETE),
NULL, OPEN_EXISTING, , NULL);
if(hfile != INVALID_HANDLE_VALUE) {
/*调用CreateFileA函数创建文件句柄,此处句柄有效则执行*/
FILETIME ft;
if(GetFileTime(hfile, NULL, NULL, &ft)) {
curl_off_t converted = (curl_off_t)ft.dwLowDateTime
| ((curl_off_t)ft.dwHighDateTime) << ; if(converted < CURL_OFF_T_C()) {
fprintf(error_stream,
"Failed to get filetime: underflow\n");
}
else {
result = (converted - CURL_OFF_T_C()) / ;
}
}
else {
fprintf(error_stream,
"Failed to get filetime: "
"GetFileTime failed: GetLastError %u\n",
(unsigned int)GetLastError());
}
CloseHandle(hfile);
}
else if(GetLastError() != ERROR_FILE_NOT_FOUND) {
/*调用CreateFileA函数创建文件句柄,此处句柄无效则执行*/
/*就是文件句柄创建失败了,就执行下面的代码, 输入一个信息*/
fprintf(error_stream,
"Failed to get filetime: "
"CreateFile failed: GetLastError %u\n",
(unsigned int)GetLastError());
}
#else
那么上面红框中的代码段, 是否可以修改成如下内容:
保存后, 尝试编译一下:
./configure
make
到此就编译成功了, 运行一下:
ps: 查了一下资料, 在Linux下, ERROR_FILE_NOT_FOUND 应该是 2的 , 所以可以在代码的前面加一个宏
#define ERROR_FILE_NOT_FOUND 2
----2018-6-23
MinGW下编译curl-7.60.0时, 发生ERROR_FILE_NOT_FOUND undeclared的更多相关文章
- 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)
在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- libcurl在mingw下编译
通过命令提示符进入 curl-7.27.0 文件夹输入 mingw32-make mingw32 进行生成(这里我只需要普通的功能,于是没有加附加的选项)编译完成后,在 lib 文件夹中会有我们需要的 ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- 64位centos 下编译 hadoop 2.6.0 源码
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...
- OSX下编译安装opencv3.1.0与opencv_contrib_master
OSX版本10.11.3 1.安装homebrew,打开终端,写入指令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Hom ...
- 在MinGW下编译ffmpeg
因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码.为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW. 1,安装 ...
- MinGW下编译openssl, json-c
目的:在windows环境下,编译开源库openssl 环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j 工具主要使用MinGW(含msys1.0), IDE选 ...
- [环境配置]Ubuntu16.04下编译安装gcc6.3.0
上一篇的SVS要用gcc6.3编译,否则结果不正确,本来以为gcc很好装,结果发现用apt-get安装gcc6只能安装6.5版本,代码作者奇特的要求只能用gcc6.3,没办法只能用源码装了,期间碰见了 ...
随机推荐
- 关于sarima模型的描述,时间序列的理论与方法(第二版)(美 布洛克威尔)有一部分比较值得看
- 02.当构造参数过多时使用builder模式
前言 <Effective Java>中文第三版,是一本关于Java基础的书,这本书不止一次有人推荐我看.其中包括我很喜欢的博客园博主五月的仓颉,他曾在自己的博文<给Java程序猿们 ...
- mysql操作之密码的那点小事
mysql 修改密码的2种方式: 进入mysql库的user表中修改 update mysql.user password = password("新密码") where 条件; ...
- Spring Boot + MyBatis + PostgreSql
Maven构建项目 1.访问http://start.spring.io/ 2.选择构建工具Maven Project.Spring Boot版本1.3.6以及一些工程基本信息,点击“Switch t ...
- 【PAT甲级】1014 Waiting in Line (30 分)(队列维护)
题面: 输入四个正整数N,M,K,Q(N<=20,M<=10,K,Q<=1000),N为银行窗口数量,M为黄线内最大人数,K为需要服务的人数,Q为查询次数.输入K个正整数,分别代表每 ...
- node.js中的事件轮询Event Loop
任务队列/事件队列 "任务队列"是一个事件的队列,IO设备完成一项任务,就在"任务队列"中添加一个事件,表示相关的异步任务可以进入"执行栈" ...
- redhat 7.6 查看硬件负载命令
1. 命令 查看CPU负载 命令1:uptime 命令2:cat /proc/loadavg 查看CPU信息:cat /proc/cpuinfo load average:表示平均1分钟内运行的 ...
- Spring Cloud入门-Nacos实现注册和配置中心(Hoxton版本)
文章目录 摘要 Nacos简介 使用Nacos作为注册中心 安装并运行Nacos 创建应用注册到Nacos 负载均衡功能 使用Nacos作为配置中心 创建nacos-config-client模块 在 ...
- antd组件实现上传证书
- 1 网页及浏览器内核&Web标准
网页的组成: 主要由文字.图像和超链接等元素构成,还可以包含音频.视频以及flash. 浏览器内核: 浏览器内核分为两部分: 1 渲染引擎(layout engineer) 渲染引擎负责取得网页的内容 ...