我是C / C++编程的新手,因此请考虑到这一点。
问题:
使用libzip库时,在编译时未在Scopet中声明在manual上描述的某些功能。
我读了这个tutorial(以法语对不起),它写于2011年。它使用不同的函数名(zip_dir_add是zip_add_dir等。)
我认为这可能是由于安装过程引起的。也许我忘了包括一些文件。
这是我到目前为止所做的:
1)使用ubuntu软件包安装libzip库:
sudo apt-get install libzip-dev libzip2
2)在简单的代码上尝试
#include <iostream>
#include <zip.h>
using namespace std;
int main()
{
struct zip *zip;
int err(0);
zip = zip_open("testzip.zip", ZIP_CREATE, &err);
zip_dir_add(zip, "upld");
zip_close(zip);
return 0;
}
返回结果:在此范围内未声明zip_dir_add
知道是什么原因造成的吗?
提前致谢 !
最佳答案
您的问题分为两部分,一是为什么未编译zip_dir_add,而文档建议使用zip_dir_add,因为zip_add_dir已过时。答案是您可能引用的是不同版本的代码和不同版本的文档。要交叉验证,请转到libZip的包含路径,然后打开zip.h并检查zip_dir_add(您找不到)。
第二个问题是为什么zip_add_dir创建一个空的存档文件。答案是,当您将目录添加到zip_add_dir时,它不会自动将所有文件(在目录下方)添加到存档中,您必须遍历目录并使用zip_add添加单个文件。
关于c++ - 未声明手册中的libzip zip_dir_add-C/C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26034727/