# install dependencies for python3.8
RUN apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget -y
# install arm toolchain
RUN ARM_TOOLCHAIN_VERSION=12.2.Rel1
RUN curl -Lo gcc-arm-none-eabi.tar.xz "https://developer.arm.com/-/media/Files/downloads/gnu/12.2.Rel1/binrel/arm-gnu-toolchain-12.2.Rel1-x86_64-arm-none-eabi.tar.xz"
RUN mkdir -p /opt/gcc-arm-none-eabi
RUN tar xf gcc-arm-none-eabi.tar.xz --strip-components=1 -C /opt/gcc-arm-none-eabi
ENV PATH="/opt/gcc-arm-none-eabi/bin:${PATH}"
# test arm-none-gcc
RUN arm-none-eabi-gcc --version
# install python3.8
RUN wget https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz
RUN tar -xf Python-3.8.12.tgz
WORKDIR /Python-3.8.12
RUN ./configure --enable-optimizations
RUN make -j 4
RUN make altinstall
#attempt to fix libncursesw.so.5
RUN apt install libncurses5 -y
RUN apt install libncursesw5 -y
# test arm-none-gdb
RUN arm-none-eabi-gdb --version
3条答案
按热度按时间sh7euo9m1#
download site上的发行说明包括从源代码构建的说明。
我在这里做了一个快速的转录,但未来的读者应该被警告它可能已经过时了。
如何从源代码构建工具链
您可以使用Linaro ABE(高级构建环境)和提供的ABE清单文件从源代码构建Arm GNU Toolchain。
下面的例子展示了如何使用Linaro ABE构建系统从源代码构建gcc-arm-aarch 64-none-elf工具链。
说明
ABE依赖于git-new-workdir,需要将此工具安装在/usr/local/bin目录中:
从下面的URL克隆ABE并 checkout stablebranch(参见Getting ABE):
创建构建目录并切换到该目录。该目录的任何名称都可以使用:
配置ABE(从构建目录):
将工具链清单文件从https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads下载到build文件夹中,用于所需的工具链,例如,gcc-arm-aarch 64-none-elf-abe-manifest.txt:
构建工具链(从构建目录):
构建的工具链将安装在builds/destdir/x86_64-unknown-linux-gnu/bin/目录中,并可供使用。
gmxoilav2#
hgqdbh6s3#
对于那些遇到同样问题的人,我找到了一个针对arm工具链12.2的解决方案。它可能也适用于以前版本的工具链,我还没有检查。12.2带来了c++ 20支持。
我把它装进了集装箱
所以它基本上是:
如果你想在你的主机操作系统上执行这个,删除docker
RUN
命令,并在这里和那里添加一些sudo:)。如果有任何帮助,我的完整docker文件(安装了更多,比如jlink支持,以便能够在附加到这个docker容器时从vscode编译/运行/调试)