从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,您需要一些其他软件包:
总体而言,此修改后的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"]