我正在将Android项目中的标准库从gnustl(libstdc ++)迁移到llvm-libc ++。 在其中一个项目中,我遇到了缺少头文件
的多个错误 fatal error: 'hashtable.h' file not found
#include "hashtable.h"
^~~~~~~~~~~~~
clang++.exe: error: clang frontend command failed due to signal (use -v to see invocation)
Android clang version 5.0.300080 (based on LLVM 5.0.300080)
预处理文件输出显示该文件由gnustl提供
.. f:/nugetcache/androidndk.16.1.1/sources/cxx-stl/gnu-libstdc++/4.9/include/backward\\hashtable.h
但是,当我迁移到libc ++之后,我在libc ++中找不到等效的头文件。该头文件声明类HashTable
template<class _Val, class _Key, class _HashFcn,
class _ExtractKey, class _EqualKey, class _Alloc>
class hashtable
{...}
我尝试在libc ++代码中搜索此标头和此类,但找不到任何内容。我认为这是一个重要的类,必须由libc ++以某种形式提供,但我无法识别它。
有人因为这种差异而遇到错误,建议的解决方法是什么?
答案 0 :(得分:2)
我尝试在libc ++代码中搜索此标头和此类,但找不到任何内容。我认为这是一个重要的类,必须由libc ++以某种形式提供,但我无法识别它。
这是libstdc ++扩展名,是C ++之前11天遗留下来的。
如果查看内容here,您会发现它的顶部带有注释:这是一个内部头文件,其他库头文件也包含该文件。请勿尝试直接使用它。
答案 1 :(得分:0)
libc ++不包含该头文件,并且包含用于不同类地图的更特定的接口。
因此@marshall指出这一点是正确的,因为他说我们根本不需要该标头。