我正在将我的Android项目中的标准库从gnustl (libstdc++)迁移到llvm++。在其中一个项目中,我得到了丢失的头文件的多个错误,
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++以某种形式提供,但我无法识别它。
是否有人因这一差异而面临错误?建议的解决办法是什么?
发布于 2019-01-03 02:57:12
我尝试在libc++代码中搜索这个标头和这个类,但是找不到任何东西。我认为这是一个重要的类,必须由libc++以某种形式提供,但我无法识别它。
这是一个libstdc++扩展,从预C++11天遗留下来.
如果您查看内容这里,您将看到它在顶部有一个注释:这是一个内部头文件,包含在其他库头中。不要试图直接使用它。
发布于 2019-01-04 11:33:49
libc++不包含该头文件,并且包含针对不同类型映射的更具体的接口。
因此,@marshall指出了这一点是对的,因为他说我们根本不需要头球。
https://stackoverflow.com/questions/54008192
复制相似问题