使用Rocket-Chip生成器项目在交叉编译工具链(用于riscv架构(上工作。这有很多依赖关系,我在 Ubuntu 16.04 LTS 机器上开发了所有内容。我想在其他拥有旧Linux Debian(Linux 3.2(发行版的机器中部署它。
由于依赖项有很多问题,我无法在机器上正确运行我的测试。
尝试虚拟机,正在工作,但性能不够公平。
我的问题是,有没有其他方法可以自包含工具链及其源代码和依赖项?我听说过Docker,它用于此,但我想知道这是否对我有用?
欢迎任何想法或方向! 谢谢 此致敬意。
是的,这是docker的一个场景。
正如您提到的,这是一个跨构建工具。因此,您可以将要构建的源代码放在 host(例如/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中设置CMD
或ENTRYPOINT
,值应该是工具链的构建命令,并且默认在my_source_code_folder_container
中构建源代码,然后输出也会在my_source_code_folder_container
中。
由于my_source_code_folder_container
配置为主机中my_source_code_folder_host
文件夹中的 docker 卷,因此输出也将在主机中看到。
目前,该解决方案广泛应用于一些半导体公司的CI团队进行日常交叉编译。