自学内容网 自学内容网

CyberRt实践之Hello Apollo(Apollo 9.0版本)

apollo9.0环境安装参考官方网站

apollo.baidu.com/community/Apollo-Homepage-Document?doc=BYFxAcGcC4HpYIbgPYBtXIHQCMEEsATAV0wGNkBbWA5UyRFdZWVBEAU0hFgoIH0adPgCY%2BADwCiAVnEAhAILiAnABZxEgOzK1Y%2BQA51M3ROUnJBsbK2WZoyUdkBhcXoAMhlwDFlARnUXZdzE9AGY%2BbFINADYpUhCEFWwCAhUNEIJSYWEfFSUpbBUpAiifHxCNTFAKVCA

注意:

代码文件创建

进入apollo9.0容器,创建文件夹及文件,目录结构如下所示

(apollo-9.0)[pcl@in-dev-docker:/apollo_workspace]$ tree ./cyber_demo/
./cyber_demo/
|-- BUILD
|-- cyber_01
|   `-- demo_main
|       |-- BUILD
|       `-- main.cc
`-- cyberfile.xml

代码文件编写

./cyber_demo/BUILD

load("//tools:apollo_package.bzl","apollo_package")

package(
    default_visibility=["//visibility:public"]
)

apollo_package()

 

./cyber_demo/cyberfile.xml

<package>
  <name>cyber_demo</name>
  <version>1.0.0</version>
  <description>
   cyber_demo
  </description>
  <maintainer email="AD-platform">AD-platform@baidu.com</maintainer>
  <type>module</type>
  <src_path>//cyber_demo</src_path>
  <license>BSD</license>
  <author>Apollo</author>
  <depend type="binary" src_path="//cyber" repo_name="cyber">cyber</depend>
  <builder>bazel</builder>
</package>

 

./cyber_demo/cyber_01/demo_main/BUILD

load("//tools:cpplint.bzl","cpplint")
load("//tools:apollo_package.bzl","apollo_cc_binary","apollo_package")
package(default_visibility=["//visibility:public"])

apollo_cc_binary(
name="main",
srcs=["main.cc"],
deps=["//cyber"],
)

apollo_package()
cpplint()

./cyber_demo/cyber_01/demo_main/main.cc

#include "cyber/cyber.h"

int main(int argc,char* argv[]){
    // apollo::cyber::Init(argv[0]);
    AERROR<<"hello Apollo!";
    AINFO<<"hello cyber world!";
    AWARN<<"hello apollo!";
    AFATAL<<"hello apollo!";
    return 0;
}

编译

在/apollo_workspace目录下执行

buildtool build -p ./cyber_demo/

编译过程较为耗时,笔者中间遇到了一些问题,最终修改并编译通过

问题1:权限问题

报错显示无法创建/apollo_workspace/.cache/bazel,权限被拒绝

解决:

查看.cache文件的所属用户组及用户,发现非root用户

尝试修改.cache文件的所属用户组及所属权限,问题解决

chown root:root /apollo_workspace/.cache

 问题2:/root目录下没有.apollo文件

可能是笔者安装环境的时候没注意到,出了些问题,导致一些包下载到了容器外,笔者发现.apollo文件被下载到/home/pcl目录下之后,使用docker cp命令将该目录拷贝到/root/.apollo之后,问题得到解决

运行

/opt/apollo/neo/bin/main


原文地址:https://blog.csdn.net/qq_58158950/article/details/142930237

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!