源链接:http://www.tangqizhong.info/?p=741
myget(至今不明白为什么它对应的命令是mytget…)是我从用linux之后就开一直在用的命令行下载工具(其次也会用到axel,wget),但直到某天发现运行mytget报错,没办法,估计是更新系统后,一些库发生变化了。没办法,只好再编译一遍。在编译的时候报错了,解决的办法如下:
utils.cpp: 在函数‘int determine_screen_width()’中:
utils.cpp:128:18: 错误:‘stderr’在此作用域中尚未声明
utils.cpp:128:24: 错误:‘fileno’在此作用域中尚未声明
utils.cpp: 在函数‘void convert_size(char*, off_t)’中:
utils.cpp:151:30: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:156:40: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:162:35: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:164:41: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:171:35: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:173:41: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:180:35: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:182:41: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp: 在函数‘void convert_time(char*, double)’中:
utils.cpp:197:41: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:205:40: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:213:40: 错误:‘sprintf’在此作用域中尚未声明
utils.cpp:217:26: 错误:‘sprintf’在此作用域中尚未声明
make[2]: *** [utils.o] 错误 1
make[2]: Leaving directory `/btdown/myget-0.1.2/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/btdown/myget-0.1.2'
make: *** [all] 错误 2
解决:#include “stdio.h”
downloader.cpp: 在成员函数‘int Downloader::init_threads_from_mg()’中:
downloader.cpp:160:29: 错误:对‘stat::stat(char*&, stat*)’的调用没有匹配的函数
/usr/include/bits/stat.h:40:3: 附注:备选为: stat::stat()
/usr/include/bits/stat.h:40:3: 附注: stat::stat(const stat&)
downloader.cpp: 在成员函数‘int Downloader::directory_download()’中:
downloader.cpp:423:21: 错误:‘mkdir’在此作用域中尚未声明
downloader.cpp:443:24: 错误:‘mkdir’在此作用域中尚未声明
make[2]: *** [downloader.o] 错误 1
make[2]: Leaving directory `/btdown/myget-0.1.2/src'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/btdown/myget-0.1.2'
make: *** [all] 错误 2
解决:
#include "iostream"
#include "sys/types.h"
#include "sys/stat.h"