繁体   English   中英

C ++-Fedora 12的GCC4.4.4缺少stl_alloc.h吗?

[英]C++ - stl_alloc.h missing on GCC4.4.4 on Fedora 12?

我正在将应用程序从BSD平台移植到Linux机器上。 编译时,我发现某些头文件要求<bits/stl_alloc.h> ,这在我的计算机中是缺少的。 是否有人对我在哪里可以找到它和/或为什么找不到它有任何想法?

我正在使用GCC4.4.4运行Fedora 12机器。

您的错误消息显示缺少bits目录中的文件。 为此可能导致两种可能的方式:

  1. 您从应用程序中明确包含了此文件。 那是您的错,因为它不是标准头,并且可能不在您的标准包含路径中。 您应该避免这样做。 与OS进行交互的大多数必要机制都在标准库中(或在其他为可移植性专门设计的机制中),因此与使用特定STL实现的位相比,您拥有更好的解决方案。

  2. 该文件是从STL的某些标准标头中间接包含的。 事实是,Fedora上的STL实现可以是可移植的,并且可以支持BSD。 标头中可能包含以下代码:

     #ifdef __BSD__ // BSD-specific include file #include <bits/stl_alloc.h> #elsif defined __LINUX__ #include <bits/linux_alloc.h> #endif 

    通常,在Linux上开发的程序将包含正确的文件。 但是, 您的程序可能已经自己定义了BSD指纹 ,并且STL实现可能会误解该指纹,因为该指纹应包括其BSD特定的部分。 而且,如果仅在BSD上构建它,那么您根本不会注意到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM