从alpine:edge构建docker映像时,我收到一条error: no include path in which to search for stdint.h
错误消息,它导致诸如unknown type name 'uint32_t'
之类的其他错误以及编译程序时失败。
据我所知,stdint.h
是C ++标准库的一部分,并且应该存在,除非alpine:edge
中有破损之处,我认为情况并非如此。 / p>
我的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
?
答案 0 :(得分:2)
要成功编译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"]