gpt4 book ai didi

c - GCC 无法编译 libcurl 示例 : ‘CURLINFO_TOTAL_TIME_T’ undeclared

转载 作者:行者123 更新时间:2023-11-30 16:30:02 28 4
gpt4 key购买 nike

我正在尝试编译libcurl的示例代码fileupload.c在 Ubuntu 18.04 LTS 上使用 GCC 时,出现以下错误:

~ gcc fileupload.c 
In file included from /usr/include/x86_64-linux-gnu/curl/curl.h:2738:0,
from fileupload.c:27:
fileupload.c: In function ‘main’:
fileupload.c:76:31: error: ‘CURLINFO_TOTAL_TIME_T’ undeclared (first use in this function); did you mean ‘CURLINFO_TOTAL_TIME’?
curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME_T, &total_time);
^
fileupload.c:76:31: note: each undeclared identifier is reported only once for each function it appears in

作为 libcurl,我安装了 Ubuntu 的 libcurl4-openssl-dev 软件包。谁能告诉我为什么 CURLINFO_TOTAL_TIME_T 未声明,尽管它应该是 part of the library

这是示例代码:

 /***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/* <DESC>
* Upload to a file:// URL
* </DESC>
*/
#include <stdio.h>
#include <curl/curl.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(void)
{
CURL *curl;
CURLcode res;
struct stat file_info;
curl_off_t speed_upload, total_time;
FILE *fd;

fd = fopen("debugit", "rb"); /* open file to upload */
if(!fd)
return 1; /* can't continue */

/* to get the file size */
if(fstat(fileno(fd), &file_info) != 0)
return 1; /* can't continue */

curl = curl_easy_init();
if(curl) {
/* upload to this place */
curl_easy_setopt(curl, CURLOPT_URL,
"file:///home/dast/src/curl/debug/new");

/* tell it to "upload" to the URL */
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);

/* set where to read from (on Windows you need to use READFUNCTION too) */
curl_easy_setopt(curl, CURLOPT_READDATA, fd);

/* and give the size of the upload (optional) */
curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE,
(curl_off_t)file_info.st_size);

/* enable verbose for easier tracing */
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);

res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));

}
else {
/* now extract transfer info */
curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD_T, &speed_upload);
curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME_T, &total_time);

fprintf(stderr, "Speed: %" CURL_FORMAT_CURL_OFF_T " bytes/sec during %"
CURL_FORMAT_CURL_OFF_T ".%06ld seconds\n",
speed_upload,
(total_time / 1000000), (long)(total_time % 1000000));

}
/* always cleanup */
curl_easy_cleanup(curl);
}
fclose(fd);
return 0;
}

最佳答案

我使用了过时的版本,请参阅 Sander De Dycker 的回复。

关于c - GCC 无法编译 libcurl 示例 : ‘CURLINFO_TOTAL_TIME_T’ undeclared,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51475207/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com