【发布时间】:2020-12-05 11:59:59
【问题描述】:
我正在尝试为没有mmap/munmap(带有 devkitPro 工具链的 Nintendo Switch)的平台构建 boost 1.71。构建失败,因为没有 <sys/mman.h> 文件。
如何配置 boost 以禁用内存映射 IO?我检查了boost/config/user.hpp,但那里似乎没有相关选项。
【问题讨论】:
我正在尝试为没有mmap/munmap(带有 devkitPro 工具链的 Nintendo Switch)的平台构建 boost 1.71。构建失败,因为没有 <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未定义
不要使用 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 库(直接排除它)。需要其他的可以follow their guide to include specific source files for specific parts of the library implementation
【讨论】:
mmap 不是我唯一的问题,只是第一个弹出的问题,所以无论如何我预计会有一些事情发生。
LACKS_SYS_MMAN_H之类的东西的正确位置? project-config.jam 中是否有此类内容的语法,或者我是否将它们添加到 boost/config/user.hpp 或编译器标志中?
define=