stdint.h 在 Alpine docker 图像中找不到
stdint.h not found in Alpine docker image
我在从 alpine:edge 构建 docker 图像时收到 error: no include path in which to search for stdint.h
错误消息,这会导致其他错误,例如 unknown type name 'uint32_t'
和编译程序失败。
据我所知,stdint.h
是 C++ 标准库的一部分,应该存在,除非 alpine:edge
中出现了某些问题,但我认为情况不会如此.
我的 docker 图片如下:
FROM alpine:edge
RUN apk update && apk add \
git \
make \
gcc \
python3 \
ldc \
&& git clone --recursive https://github.com/lomereiter/sambamba.git \
&& cd sambamba \
&& make \
&& mv sambamba /usr/local/bin/ \
&& cd ../.. \
&& rm -r sambamba
WORKDIR /wd
ENTRYPOINT ["/usr/local/bin/sambamba"]
注意镜像alpine:edge
是必须的,因为ldc
包只在上面可用。如何解决这个问题?为什么找不到 stdint.h
?
要成功编译 Sambamba,您需要一些额外的包:
- g++(用于 C++ 编译器和包含)
- zlib
- zlib-dev(用于 zlib 头文件)
总的来说,这个修改后的 Dockerfile 应该可以解决问题:
FROM alpine:edge
RUN apk update && apk add \
git \
make \
gcc \
g++ \
zlib \
zlib-dev \
python3 \
ldc \
&& git clone --recursive https://github.com/lomereiter/sambamba.git \
&& cd sambamba \
&& make \
&& mv sambamba /usr/local/bin/ \
&& cd ../.. \
&& rm -r sambamba
WORKDIR /wd
ENTRYPOINT ["/usr/local/bin/sambamba"]
我在从 alpine:edge 构建 docker 图像时收到 error: no include path in which to search for stdint.h
错误消息,这会导致其他错误,例如 unknown type name 'uint32_t'
和编译程序失败。
据我所知,stdint.h
是 C++ 标准库的一部分,应该存在,除非 alpine:edge
中出现了某些问题,但我认为情况不会如此.
我的 docker 图片如下:
FROM alpine:edge
RUN apk update && apk add \
git \
make \
gcc \
python3 \
ldc \
&& git clone --recursive https://github.com/lomereiter/sambamba.git \
&& cd sambamba \
&& make \
&& mv sambamba /usr/local/bin/ \
&& cd ../.. \
&& rm -r sambamba
WORKDIR /wd
ENTRYPOINT ["/usr/local/bin/sambamba"]
注意镜像alpine:edge
是必须的,因为ldc
包只在上面可用。如何解决这个问题?为什么找不到 stdint.h
?
要成功编译 Sambamba,您需要一些额外的包:
- g++(用于 C++ 编译器和包含)
- zlib
- zlib-dev(用于 zlib 头文件)
总的来说,这个修改后的 Dockerfile 应该可以解决问题:
FROM alpine:edge
RUN apk update && apk add \
git \
make \
gcc \
g++ \
zlib \
zlib-dev \
python3 \
ldc \
&& git clone --recursive https://github.com/lomereiter/sambamba.git \
&& cd sambamba \
&& make \
&& mv sambamba /usr/local/bin/ \
&& cd ../.. \
&& rm -r sambamba
WORKDIR /wd
ENTRYPOINT ["/usr/local/bin/sambamba"]