安装及编译问题FAQ——编译相关
2023-10-30 02:50954520
编译
开发者在编译时,可能会遇见下列错误:
问题一:buildtool运行后报错:
- Cannot find WORKSPACE
- Different packages in workspace have a same name
- Package xxx is not in xxx
- Can't find any package in workspace xxx
等错误
原因:buildtool需要在工作空间内运行,即容器内的/apollo_workspace,工作空间有一定的规范,aem会在执行start时将运行aem的路径挂载到容器的/apollo_workspace中,当aem在非apollo的工作空间外执行时,就可能导致以上错误
解决方法:开发者在教程中会下载一个application-pnc的文件夹,该文件夹即为apollo的工作空间,请在进入该文件夹后再执行以下命令:
与application-pnc该文件夹进行绑定
sudo apt update && sudo apt install --only-upgrade apollo-neo-env-manager-devcd pnc-competition && aem create
这个操作的原理是将您的文件夹挂载到容器中,这样我们的环境就可以访问和操作当前文件夹。在绑定之后,由于之前的环境已被清理,所以需要重新安装模块。进入 Docker 后,请按照以下链接中的步骤1.3.2以及之后的步骤进行操作:
确保容器内的/apollo_workspace是有效的,并且
buildtool 需要在 /apollo_workspace 下执行!
buildtool 需要在 /apollo_workspace 下执行!
buildtool 需要在 /apollo_workspace 下执行!
重要的事情说三遍
问题二:buildtool调用bazel编译后,bazel报错:
原因:bazel提示Error downloading,说明bazel由于网络原因无法下载自身的依赖
解决方法:
- 这个可能是网络问题导致的,由于各地网络的复杂性,可以尝试切换手机热点来下载这些依赖
- 如果仍无法下载依赖,可以使用Apollo预下载好的外部依赖缓存:
aem enter # 该命令在宿主机执行,如果已在容器内,可以忽略这一步cd /apollo_workspacewget https://apollo-system.cdn.bcebos.com/bazel_deps/cache.tar.gzrm -rf .cachetar -xzvf cache.tar.gz
然后正常编译即可
问题三:编译过程中,bazel 提示 -luuid 的错误:
原因:这个错误是由于旧版本的镜像缺少uuid的依赖,导致连接器无法连接uuid的动态库,最终编译失败
解决方法:新版本的镜像已经修复了这个问题,可以在宿主机使用以下命令:
rm -rf modules # 删除工作空间里保存的源码exit # 退出当前容器aem start -f # 启动最新版本镜像的容器
来启动最新版本镜像的容器,然后重新下载需要的模块即可。
或者直接在该容器中安装缺失的uuid:
sudo apt install uuid-dev && sudo ldconfig
问题四:赛事编译缓存:
提前编译好的planning模块缓存可以显著减少编译时间。
aem enter # 该命令在宿主机执行,如果已在容器内,可以忽略这一步cd /apollo_workspace/wget https://apollo-system.cdn.bcebos.com/bazel_deps/cache.tar.gzsudo rm -rf .cachetar -xzvf cache.tar.gz
原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
编译
问题一:buildtool运行后报错:
问题二:buildtool调用bazel编译后,bazel报错:
问题三:编译过程中,bazel 提示 -luuid 的错误:
问题四:赛事编译缓存: