首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fedora12上的GCC4.4.4上缺少C++ - stl_alloc.h?

在Fedora12上的GCC4.4.4上缺少C++ - stl_alloc.h?
EN

Stack Overflow用户
提问于 2010-08-13 03:38:44
回答 1查看 420关注 0票数 2

我正在将一个应用程序从BSD平台移植到Linux机器上。编译时,我发现一些头文件调用了<bits/stl_alloc.h>,这在我的计算机中是缺失的。有没有人知道我在哪里可以找到这个和/或为什么它不见了?

我运行的是一台带GCC4.4.4的Fedora 12机器。

EN

回答 1

Stack Overflow用户

发布于 2010-08-13 03:53:13

您的错误消息显示bits目录中的文件丢失。这可能导致两种可能的方式:

  1. 您从应用程序中显式包含了此文件。那就是你的错了,因为它不是一个标准的头文件,而且它可能不在你的标准包含路径中。您应该避免这样做。与操作系统交互的大多数必要机制都在标准库中(或在其他专门为可移植性设计的库中),因此您有更好的解决方案,而不是使用特定的implementation.
  2. This文件的位间接地包含在一些标准的STL头文件中。问题是,在Fedora上的STL实现可以是可移植的,并且可以有一些BSD支持。它的头中可能有以下代码:

#ifdef __BSD__ //特定于BSD的包含文件#include #elsif定义的__LINUX__ #include #endif

通常,在Linux上开发的程序会包含正确的文件。然而,你的程序可能已经在它自己的上定义了BSD指纹,这个指纹可能会被STL实现误解,因为它应该包括它特定于BSD的部分。如果你仅仅建立在BSD上,你根本不会注意到它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3471354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档