c++ - 如何开启STL向后兼容?

标签 c++ linux stl

我正在尝试编译一些使用 Google 的 sparsehash 包含文件的东西。

libs/include/google/dense_hash_map:93:60: error: ext/hash_fun.h: No such file or directory
^Cmake: *** [all] Interrupt

我知道 hash_fun.h 存在于/usr/include/c++/4.3/backward/hash_fun.h 中。 我只是不确定如何让 google sparse hash 使用它。任何想法?我真的很想避免篡改 google 文件或/usr/include 文件。我已经使用 -Wno-deprecated 来消除有关使用旧 STL 包含文件的错误,但我很确定有一种方法可以在使用较新版本的 STL 时识别#include。

最佳答案

当您编译 sparsehash 时,您是否使用与现在相同的编译器构建它?当我构建它时,它会在 tr1/functional 中找到 hash_fun,而不是在 ext/hash_fun.h 中。

m4/STL_hash_fun.m4 中,您可以看到它搜索的位置列表。

关于c++ - 如何开启STL向后兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4029801/

相关文章:

c++ - 找不到 qsort.cpp(在 Visual Studio 中调试)

linux - 在 OpenStack 上安装 Apache Hadoop

Java 在 JVM 外崩溃 - 适用于 Windows 而不是 Linux

c++ - 它被添加到具有相同键的 hash_mapp 字符串

c++ - 图增量构建的性能问题

c++ - 删除 C++ 映射中的指针

c++ - 子类化、赋值运算符和复制构造函数

c++ - UseQueryResult 不是 mysqlpp 的成员

c++ - 提高 std::vector 的存储容量/性能

linux - 允许 Nagios 报告其他两台 Linux 机器之间的 ping 的 Bash 脚本