在编译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的更多相关文章

  1. 在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(网上有 ...

  2. Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)

    Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...

  3. libcurl在mingw下编译

    通过命令提示符进入 curl-7.27.0 文件夹输入 mingw32-make mingw32 进行生成(这里我只需要普通的功能,于是没有加附加的选项)编译完成后,在 lib 文件夹中会有我们需要的 ...

  4. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  5. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  6. OSX下编译安装opencv3.1.0与opencv_contrib_master

    OSX版本10.11.3 1.安装homebrew,打开终端,写入指令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Hom ...

  7. 在MinGW下编译ffmpeg

    因为需要使用ffmpeg的相关库和执行文件,所以需要编译最新的ffmpeg代码.为了能在编译成Windows native执行程序(需要在.net中调用该执行程序),这里我们使用MinGW. 1,安装 ...

  8. MinGW下编译openssl, json-c

    目的:在windows环境下,编译开源库openssl 环境:windows 10 ,Mingw及自带msys工具,openssl-1.0.2j 工具主要使用MinGW(含msys1.0), IDE选 ...

  9. [环境配置]Ubuntu16.04下编译安装gcc6.3.0

    上一篇的SVS要用gcc6.3编译,否则结果不正确,本来以为gcc很好装,结果发现用apt-get安装gcc6只能安装6.5版本,代码作者奇特的要求只能用gcc6.3,没办法只能用源码装了,期间碰见了 ...

随机推荐

  1. 设计模式01 创建型模式 - 原型模式(Protype Pattern)

    参考 1. 设计模式:原型模式 | 博客园 2. Java clone深拷贝.浅拷贝 | CSDN 3. Cloneable接口和Object的clone()方法 | 博客园 原型模式(Prototy ...

  2. Ubuntu 16.04 安装Redis服务器端

    ~ sudo apt-get install redis-server 安装完成后,Redis服务器会自动启动,我们检查Redis服务器程序 检查Redis服务器系统进程 ~ ps -aux|grep ...

  3. mysql cmmand not found

    https://www.cnblogs.com/yangzigege/p/8337393.html

  4. Linux:vi & vim(待学)

    VI编辑器_终端编辑器 目标 vi简介 打开和新建文件 三种工作模式 常用命令查询 1 简介 1.1 学习vi的目的 在工作中, 要对 服务器上的 文件进行 简单 的修改, 可以使用 ssh 登录到远 ...

  5. 如何往gitlab/github上游贡献代码

    Git 是一个开源的分布式版本控制系统,它能够记录每一次改动. 一些概念 仓库:git 中以仓库为单位:每个项目对应一个仓库,如 /eayuntest/Rally./eayuntest/stack 是 ...

  6. VUE引入模块之import xxx from 'xxx' 和 import {xxx} from 'xxx'的区别

    import FunName from ‘../xxx’ export defualt function FunName() { return fetch({ url: '/article/list' ...

  7. Systemverilog for design 笔记(一)

    转载请标明出处 一.     System Verilog 声明的位置 1.       包(packages) Verilog要求局部声明: variables, nets, tasks and f ...

  8. Hibernate(九)--N+1问题

    1.在利用Hibernate操作数据库的时候,如果在实体类上设置了表的双向关联.这可能会出现Hibernate N+1的问题. 1.1.一对多: 在一方,查找得到了 n 个对象,那么又需要将 n 个对 ...

  9. redis地理位置

    redis 3.2版本中增加的最大功能就是对GEO(地理位置)的支持 当前业务中地图方面是调用高德api(云图),请求多少会有延迟  而redsigeo可以实现查找附近的终端以及测量两点之间的直线距离 ...

  10. Controller生命周期

    1. 实例化 alloc/init, initWithNibName 2.awakeFromNib 从nib创建Controller对象 3.get/set outlets 4. viewDidLoa ...