为了使用C++17 include<filesystem>
,我需要在debian docker中使用gcc-9
包。
默认情况下,debian:latest
(又名10或buster(将从常规发行版repo安装gcc8.3.0
。
是否有任何PPA、测试回购等,我可以轻松安装gcc-9
(或更高版本(包(即不从源代码构建(
谢谢!
注意:需要gcc-9具有良好的C++17<filesystem>
支持
GCC 9发布说明:
使用中的类型和函数现在不需要链接-lsdc++fs。
src:https://gcc.gnu.org/gcc-9/changes.html
注2:CMake 3.16*不支持任何cxx_filesystem编译器功能AFAIK。
注3:您可以在此处找到日志:https://github.com/Mizux/KalistoUnpacker/runs/642516660?check_suite_focus=true
从debian:10
:的新开始
echo 'deb http://deb.debian.org/debian testing main' > /etc/apt/sources.list.d/testing.list
apt update
cat <<EOF > /etc/apt/preferences.d/pin
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
EOF
apt install -qq -y -t testing build-essential
收益率:
# g++ -v
gcc version 9.3.0 (Debian 9.3.0-11)
在我的Dockerfile中,我做了:
FROM debian:latest AS env
...
RUN echo 'deb http://deb.debian.org/debian testing main' >> /etc/apt/sources.list
RUN apt update -y
RUN apt install -y gcc
注意:我在安装CCD_ 8之后添加了这些行,所以从技术上讲;默认";gcc然后由测试repo中的更新。。。
注2:使用RUN gcc --version
,我得到了gcc (Debian 9.3.0-11) 9.3.0
:D