基于VS2017+ROS的开坑之旅

前面尝试了很多算法之后,得先找个能用的环境跑起来试试,于是决定尝试下ROS环境,但是我一直没有尝试也就是这个原因,坑太多了,文末估计会有很多的参考链接

首先,安装ROS环境,这个坑是最少的,参考古月居55的教程

首先安装VS2017,笔者装的Community版,因此这一步可以跳过了

然后创建一个快捷方式后面所使用的所有操作都是从这个入口开始,因为这个需要VS的环境,右键创建一个快捷方式,然后输入下面内容,并保存名字为ROS,具体版本根据自己安装的而定

C:\Windows\System32\cmd.exe /k "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64 -host_arch=amd64

然后赋予管理员权限(图片来自古月居)

安装Chocolatey

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

安装Git

choco install git -y

安装ROS(第二步有时候会等很久,很像卡住了,但是请耐心等待,建议一直看着安装,以防报错)

choco source add -n=ros-win -s="https://roswin.azurewebsites.net/api/v2" --priority=1
choco upgrade ros-melodic-desktop -y

然后古月居里面有简单的测试,这里不再赘述

然后是在Windows下编译源码的问题,这部分才是深坑

首先需要使用到pthread这个库,因此需要在下面这个链接里下载下图的压缩包

ftp://sourceware.org/pub/pthreads-win32

包里有三个文件夹,我们需要Pre-built.2这个文件夹,其中包含了pthreads for win32 的头文件和库文件,下面有三个文件夹,分别包含了dll、include和lib

include文件夹下的头文件拷到VS头文件目录下
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\include\
lib文件夹下的静态库文件拷到VS库文件目录下
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.11.25503\lib
dll文件夹下x86文件拷到
C:\Windows\SysWOW64
dll文件夹下x64文件拷到
C:\Windows\System32

然后修改pthread.h文件,可以解决“timespec”:“struct”类型重定义错误

#if !defined( PTHREAD_H )
#define PTHREAD_H
下面加上一行宏定义
#define HAVE_STRUCT_TIMESPEC

 然后编译时可能会报错gtest-NOTFOUND

 打开要编译的包里面的CMakeLists.txt,然后将

  target_link_libraries( rtest
      gtest
      ${catkin_LIBRARIES}
  )

更改为

  target_link_libraries( rtest
      ${GTEST_LIBRARIES}
      ${catkin_LIBRARIES}
  )

 未完待续。。。

感谢以下Geeks:
ROS探索总结(五十五)—— Windows版ROS安装试用
http://www.guyuehome.com/2192
VS2017配置使用#indlude
https://blog.csdn.net/cry1994/article/details/79115394?tdsourcetag=s_pcqq_aiomsg
ROS on Windows Documentation staging repo
https://ms-iot.github.io/ROSOnWindows/GettingStarted/UsingROSonWindows.html

猜你喜欢

转载自www.cnblogs.com/Pyrokine/p/10680484.html