我正在尝试为没有mmap
/的平台构建 boost 1.71 munmap
(带有 devkitPro 工具链的 Nintendo Switch)。构建失败,因为没有<sys/mman.h>
文件。
如何配置 boost 以禁用内存映射 IO?我已经检查过boost/config/user.hpp
,但那里似乎没有相关的选项。
确保
BOOST_CONTEXT_USE_MAP_STACK
未定义_ _
避免包括context/posix/protected_fixedsize_stack.hpp
. (头后卫BOOST_CONTEXT_PROTECTED_FIXEDSIZE_H
)
避免包括coroutine/posix/protected_stack_allocator.hpp
. (头后卫BOOST_COROUTINES_PROTECTED_STACK_ALLOCATOR_H
)
BOOST_SPIRIT_FILEITERATOR_POSIX
如果您使用 Spirit Classic,则未定义
不要使用 Boost Interprocess 共享内存/映射文件。interprocess/anonymous_shared_memory.hpp
, interprocess/shared_memory_object.hpp
, interprocess/mapped_region.hpp
)
似乎有一种方法可以(取消)配置一些 for BOost Interprocess,但我不知道是什么设置
defined(BOOST_INTERPROCESS_POSIX_SHARED_MEMORY_OBJECTS)
,而且看起来它并没有涵盖所有用途
该列表将包括上述所有内容以及任何依赖于它们的内容。
这可能很多,但我没有追踪它们。所以也许你对你所追求的图书馆很幸运
但是可以调整以下直接依赖项:
LACKS_SYS_MMAN_H
已经没有问题了iostreams/src/mapped_file.cpp
是个问题,所以不能构建Iostreams 库(简单排除它)。如果您需要其余的,您可以按照他们的指南为库实现的特定部分包含特定的源文件