【问题标题】:Compiling Mongo on Alpine在 Alpine 上编译 Mongo
【发布时间】:2025-11-20 21:15:01
【问题描述】:

我正在尝试在 Alpine Linux 上编译 Mongo。

有人知道如何解决这个错误吗?

In file included from src/mongo/util/net/socket_poll.h:20:0,
                 from src/mongo/util/net/sock.cpp:42:
/usr/include/sys/poll.h:1:2: error: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror=cpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^
cc1plus: all warnings being treated as errors
scons: *** [build/linux2/normal/mongo/util/net/sock.o] Error 1
scons: building terminated because of errors.

【问题讨论】:

    标签: linux mongodb busybox alpine


    【解决方案1】:

    这来自于构建系统添加了-Werror 标志,因此编译器将警告视为错误并导致构建失败。

    您可能可以通过使用 ad hoc --disable-warnings-as-errors 标志跳过这一步。

    【讨论】:

    • 链接这个? scons --disable-warnings-as-errors mongo
    • 那行得通。现在我遇到了一个新错误——因为我没有 glibc 头文件,而且我不确定如何在 alpine/busybox 上安装它们——src/mongo/util/processinfo_linux2.cpp:23:30: 致命错误: gnu/libc-version.h:没有这样的文件或目录#include
    • @DouglasFerguson 不确定这对您来说是否仍然是最新的,但 MongoDB 需要 glibc,而 Alpine 是针对 microlibc、iirc 编译的。