在OS X 10.9上找不到'ext / slist'文件

时间:2013-11-03 21:32:14

标签: c++ xcode stl osx-mavericks llvm-clang

我正在尝试在OS X 10.9上编译一些较旧的第三方软件。我已经设法通过调整Makefile中的设置来摆脱大多数编译问题,这些设置最初是为2005年的 gcc 编写的。但是,我目前还不知道如何克服这个错误C ++源文件:

  

/utility.h:42:10:致命错误:'ext / slist'文件未找到

我了解ext/slist属于STL的某个版本。该版本是否被取代或是否必须以Apple的版本Clang / LLVM(OS for OS X 10.9)以任何特殊方式激活?

如果可能的话,我更愿意使用预安装的工具编译此软件,而不是执行安装gcc via MacPorts等步骤。

顺便说一句,这些警告也会持续存在:

  

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin /../ LIB / C ++ / V1 / EXT /的hash_set:202:2:   警告:         不推荐使用标头。迁移到         [-W#警告] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/ext/hash_map:209:2:   警告:         不推荐使用标头。迁移到         [-W#警告]

1 个答案:

答案 0 :(得分:5)

Slist是一个单独链接列表,是libstdc ++中包含的扩展。 Mac OS X已经从libstdc ++转向libc ++,它提供了一个C ++ 11标准库。 C ++ 11在标题<forward_list>中以名称std :: forward_list提供单链表。

我相信libstdc ++仍然包含在开发人员工具中,因此您也可以将项目切换回来。如果您正在使用Xcode项目,则可以在构建设置中选择库,或者确保使用-stdlib = libstdc ++构建程序