kinect sdk 在docker内安装

        好不容易把kinect sensor sdk和samples sdk安装部署完成,改完点云人脸修复的代码,回来结合这两部分的时候却发现原本能编译的代码现在却报错如下:

/usr/include/c++/7/bits/basic_string.h:6371:14: error: ‘string’ does not name a type; did you mean ‘wstring’?
   stoi(const string& __str, size_t* __idx = 0, int __base = 10)
              ^~~~~~
              wstring
/usr/include/c++/7/bits/basic_string.h: In function ‘int std::__cxx11::stoi(const int&, std::size_t*, int)’:
/usr/include/c++/7/bits/basic_string.h:6372:69: error: request for member ‘c_str’ in ‘__str’, which is of non-class type ‘const int’
   { return __gnu_cxx::__stoa<long, int>(&std::strtol, "stoi", __str.c_str(),
 

 发现和我写的代码无关,重新卸载安装g++,gcc后没有改变,最终决定在docker内设置c++编译环境。

之前没用过docker,简单记录下使用经过

1.安装docker

2.搜索镜像:一开始安装的ubuntu18.04的镜像没有cmake,make安装这两个的时候过于麻烦重新找了镜像

docker search ubuntu18.04

不同镜像里面的已安装的应用不太一样,不知道别人是怎么直接找到合适的

docker pull image

创建容器

进入docker容器的四种方式

忘了使用的哪种,老报没有sudo 命令的错误,采用以下命令解决

docker start
docker exec -it -user root container /bin/bash

安装Azure-Kinect-Samples,遇到错误

eula agree question could not be asked

是因为有个图形化的界面需要许可认证,在docker里弹不出来
解决方法:

ubuntu 16.04 - How to accept license agreement during docker build? - Stack Overflow

编译遇到问题:CMakeFiles/simple_3d_viewer.dir/main.cpp.o: In function `PlayFile(InputSettings)':
main.cpp:(.text+0xd72): undefined reference to `k4a_playback_open'
main.cpp:(.text+0xdb9): undefined reference to `k4a_playback_get_calibration'
main.cpp:(.text+0xf2d): undefined reference to `k4a_playback_get_next_capture'
main.cpp:(.text+0x1110): undefined reference to `k4a_playback_close'

解决方法:

在Azure-Kinect-Samples/body-tracking-samples/simple_3d_viewer的CMakelist库中添加k4arecord

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值