问题标签 [libarchive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 使用 libarchive 会出现未定义的符号错误
我一定错过了一些简单的东西。对于我的程序调用的任何 libarchive 函数,我都会收到“未定义的符号:...”。
此外,尝试使用推荐的命令编译示例程序之一:
给出编译时“未定义的引用”错误。例如
系统是 Fedora 16,libarchive 版本是 3.1。libarchive 已经内置,所以我最初对 libarchive-devel 进行了 yum 安装。当这给出上述错误时,我从 github 下载了源代码并构建了它,但没有明显区别。
任何关于我没有正确配置的线索将不胜感激。
c++ - 使用 libarchive 将目录添加到 tarfile
我正在尝试将目录添加到我正在创建的 tar 存档中。存档已创建,但其中没有文件。
这是我使用 libarchive 的代码(目录是要压缩的目录的路径的 QString。)
c++ - 使用 libarchive 读取目录
我有一个 C++ 程序,我希望从磁盘中读取一些描述的存档。我想以大致树状的形式重建它以镜像磁盘上的结构(不支持符号链接/硬链接等时髦的东西)。
读下一个header的时候,很明显可以查看entry type,看是目录还是文件。不清楚的是如果它是一个目录接下来会发生什么。是否archive_read_next_header
以 BFS/DFS 方式自动执行完整的树遍历?还是我应该递归地创建新archive_entry
结构并调用一些我还没有找到的函数来遍历目录条目?
c++ - 使用 libarchive 重命名存档中的非空目录
我正在尝试使用libarchive
库重命名存档的条目。特别是我正在使用该功能archive_entry_set_pathname
。
文件和空目录已正确重命名,但不幸的是,如果目录不为空,这将不起作用:不是被重命名,而是创建一个具有新名称的新空目录作为具有旧名称的目标目录的兄弟。
相关代码片段:
非空目录有什么问题?
c++ - 在 libarchive 中设置 UTF-8 路径名标头
概括
如何在 C++ 中使用 libarchive 编写一个 zip 文件,这样路径名将采用 UTF-8 编码?使用 UTF-8 路径名,在使用 OS X / Linux / Windows 8 / 7-Zip / WinZip 时将正确解码特殊字符。
细节
我正在尝试使用 libarchive 编写一个 zip 存档,在 Windows 上使用 Visual C++ 2013 进行编译。
我希望能够将具有非 ASCII 字符的文件(例如 äöü.txt)添加到 zip 存档中。
有四个函数可以在 libarchive 中设置路径名标头:
不幸的是,它们似乎都不起作用。
特别是,我尝试过:
和
在这两种情况下,生成的 zip 存档都无法在 Windows 资源管理器和 7-Zip 中正确显示文件名。
我确信我的输入字符串编码正确,因为我将它们从 QtQString
实例转换为在我的代码的其他部分运行良好:
例如,在创建 zip 文件时,这甚至适用于对 libarchive 的另一个调用:
我还尝试更改 libarchive 的选项,如下例所示:
但是这个调用失败了,所以我假设我必须设置一些其他选项,但是我的想法已经不多了......
更新 2
我已经阅读了有关 zip 格式的更多内容。它允许以 UTF-8 编写文件名,这样 OS X / Linux / Windows 8 / 7-Zip / WinZip 将始终正确解码它们,请参见此处。
这就是我想使用 libarchive 实现的目标,即我想将我的 UTF-8 编码传递给它,pathname
并将其存储在 zip 文件中而不进行任何转换。
我添加了“设置语言环境”方法作为(不满意的)答案。
c++ - 为 c++ Visual Studio 2010 Professional 构建 libarchive 时出错
我正在尝试为 c++ Visual Studio 2010 Professional 构建 libarchive。一切似乎都很好,测试运行正常,直到我收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" exited with code -1073741571.
构建失败。
我已经在 SO 上搜索并搜索了这个确切的错误,但找不到任何东西。
谢谢你。
ios - 如何在 Xcode 中的 iOS 中使用 libarchive?
我想将libarchive添加到我的应用程序中,以便能够提取 tar.gz。
正如安装说明所说,我采取了以下步骤:
- cmake -G "Xcode" ~/libarchive-download-dir/
- 制作
- 进行安装
现在我有一个libarchive.14.dzlib
文件。我将它添加到项目中,并想调用 ie 如下,就像在示例中提出的那样
但是,方法没有声明。
我想我必须在项目中添加一个标题?!这是一个dylib,我不确定。但是我在构建文件夹中没有找到任何合适的头文件。
我如何使用 libarchive,调用一种方法时缺少什么,哪些方法可用,标题在哪里?
ios - libarchive 在 Xcode 中的 iOS 中引发编译器错误
libarchive
我用以下命令编译
- cmake -G "Xcode" ~/libarchive-download-dir/
- 制作
- 进行安装
libarchive.14.dylib
并添加achieve.h
到我的项目中。但是我得到了一个编译器错误。知道为什么吗?
体系结构 i386 的未定义符号:
“_archive_read_support_filter_all”,引用自:-[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o ld:未找到体系结构 i386 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 - v 查看调用)
我尝试了此代码,例如示例建议:
我也担心代码行旁边的警告。
低于lipo
返回值
lipo -info /Users/extjanos/Desktop/temp2/libarchive/libarchive.a 输入文件 /Users/extjanos/Desktop/temp2/libarchive/libarchive.a 不是胖文件 非胖文件:/Users/extjanos/Desktop/ temp2/libarchive/libarchive.a 是架构:x86_64
python - 在 tarfile 中解码 utf-8
我有包含多字节字符(日语)的 tar 文件。我正在使用 libarchive 解压缩文件。tar 文件中的文件名使用 utf-8 编码。当我尝试解压缩文件时,结果总是丢失多字节字符。
我写了一个 python 脚本来实现我的结果
但是我想在 C++ 中实现相同的目标。这是cpp代码的摘录
python - 在 Windows 上的 python 中使用 libarchive
我正在尝试让 libarchive 模块在 Windows 上的 python 3.4 中工作。我已经用 pip 安装了 libarchive-c 并且一切正常,但是每当我尝试将它导入到我的代码中甚至单独运行它时,我都会收到错误消息:
这来自以下代码的 ffi.py:
我以前从未使用过 ctypes,但如果我理解正确,它正在寻找外部 DLL。所以找到并安装了http://gnuwin32.sourceforge.net/packages/libarchive.htm我还添加了 C:\Program Files (x86)\GnuWin32\bin 到我的环境变量中的 %PATH% 但它仍然无法加载模块。因为它没有给我名字,所以我不确定它在寻找什么模块。我错过了什么?