我是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/

10-09 15:15