gpt4 book ai didi

C++ - Fedora 12 上的 GCC4.4.4 缺少 STL_alloc.h?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:27 24 4
gpt4 key购买 nike

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

我正在运行带有 GCC4.4.4 的 Fedora 12 机器。

最佳答案

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

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

  2. 此文件间接包含在 STL 的一些标准头文件中。问题是 Fedora 上的 STL 实现可以是可移植的,并且可以有一些 BSD 支持。它的 header 中可能包含以下代码:

    #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 上构建它,您根本不会注意到它。

关于C++ - Fedora 12 上的 GCC4.4.4 缺少 STL_alloc.h?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3471354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com