0

使用 Rocket-Chip 生成器项目处理交叉编译工具链(用于 riscv 架构)。这有很多依赖关系,我在 Ubuntu 16.04 LTS 机器上开发了所有东西。我想将它部署在其他拥有旧 Linux Debian (Linux 3.2) 发行版的机器上。

由于在依赖方面遇到了很多麻烦,我无法在机器上本地正确地运行我的测试。

尝试虚拟机,可以工作,但性能还不够公平。

我的问题是,是否有任何其他方法可以使工具链及其源和依赖项自包含?我听说过 Docker,它就是用来做这个的,但我想知道这对我来说是否有用?

欢迎任何想法或方向!谢谢,最好的问候。

4

1 回答 1

0

是的,这是 docker 的一种场景。

正如您提到的,这是一个交叉构建工具。所以你可以把你的源代码构建在主机中,例如/my_source_code_folder_host,然后使用下面的命令来构建源代码。

docker run --rm -v /my_source_code_folder_host:/my_source_code_folder_container your_build_container_image

对于your_build_container_image,您需要在 dockerfile 中设置CMDENTRYPOINT,其值应该是您的工具链的构建命令,并且它默认将源代码构建在 中my_source_code_folder_container,然后输出也将在my_source_code_folder_container.

由于my_source_code_folder_container从主机中的文件夹配置为 docker 卷my_source_code_folder_host,因此输出也将在主机中看到。

目前,该方案广泛应用于某半导体公司的CI团队进行日常交叉编译。

于 2018-07-09T14:06:17.690 回答