使用Rocket-Chip生成器项目处理交叉编译工具链(用于riscv架构)。这有很多依赖性,我在Ubuntu 16.04 LTS机器上开发了所有东西。而且我想将其部署在其他拥有旧版Linux Debian(Linux 3.2)发行版的计算机上。
由于依赖项存在很多麻烦,因此我无法在计算机上本地正确运行测试。
尝试虚拟机虽然可以,但是性能还不够合理。
我的问题是,是否还有其他方法可以使工具链及其来源和依赖项自包含?我听说过Docker,它是用于此用途的,但我想知道这对我来说是否有用?
欢迎任何想法或指示! 谢谢, 最好的祝福。
答案 0 :(得分: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中设置CMD
或ENTRYPOINT
,并且该值应该是您的工具链的内置命令,并且默认情况下,它会在{{1}中构建源代码},则输出也将位于my_source_code_folder_container
中。
由于my_source_code_folder_container
被配置为主机中文件夹my_source_code_folder_container
中的docker卷,因此输出也将在主机中显示。
当前,此解决方案已在某些半导体公司的CI团队中广泛用于日常交叉编译。