1、在qt下创建slam项目-hello slam

(在做高博的“一起做RGB-D_SLAM”的一些问题,作为自己笔记总结,以督促自己完成并理解)
在qt下创建slam项目-hello slam:
需要在slam目录下准备好三个文件:
1、CMakeLists.txt;
2、src/CMakeLists.txt;
3、src/hello.cpp;

详细:
1、主目录下的CMakeLists.txt

CMAKE_MINIMUM_REQUIRED( VERSION 2.8.1 )   #注意这里的CMake版本
PROJECT(slam)    #工程名字

#SET(CMAKE_CXX_COMPILER "g++")    #设定编译器
SET( CMAKE_BUILD_TYPE Debug  )    #编译类型
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) #将执行二进制文件输出到bin文件夹中
SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) #生成的库输出到lib文件夹中

INCLUDE_DIRECTORIES( ${PROJECT_SOURCE_DIR}/include ) #头文件放在include文件夹中
ADD_SUBDIRECTORY( ${PROJECT_SOURCE_DIR}/src )   #增加子文件,也就是进入源码文件夹中继续构建

2、src/CMakeLists.txt
(这个是参考另一个博客来的)

CMAKE_MINIMUM_REQUIRED( VERSION 2.8.1 )  #版本号,与上一个对应的
PROJECT( slam ) #工程名

set(CMAKE_CXX_FLAGS "-std=c++11 ")
add_executable(hello hello.cpp)  #生成可执行文件1

高博的教程里面是(就一行)(不是太明白,就跟高博保持一致,就用的这个)

# 增加一个可执行的二进制
ADD_EXECUTABLE( main main.cpp )

以及后面两个cpp文件时:

# 增加一个可执行的二进制
ADD_EXECUTABLE( main main.cpp )

# 增加PCL库的依赖
FIND_PACKAGE( PCL REQUIRED )

list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4") # use this in Ubuntu 16.04
# 增加opencv的依赖
FIND_PACKAGE( OpenCV REQUIRED )

# 添加头文件和库文件
ADD_DEFINITIONS( ${PCL_DEFINITIONS} )
INCLUDE_DIRECTORIES( ${PCL_INCLUDE_DIRS}  )
LINK_LIBRARIES( ${PCL_LIBRARY_DIRS} )

ADD_EXECUTABLE( generate_pointcloud generatePointCloud.cpp )
TARGET_LINK_LIBRARIES( generate_pointcloud ${OpenCV_LIBS} 
    ${PCL_LIBRARIES} )

3、src/hello.cpp

#include <iostream>

int main(int argc, char** argv)
{
   std::cout<<"hello slam"<<std::endl;
   return 0;
}

然后就是把这个slam包导入qt了:打开qt -> open project -> 选择该项目的src/CMakeLists.txt,就ok了。

添加新的cpp文件
先在src/CMakeLists.txt下添加“生成可执行文件”

add_executable(generatePointCloud generatePointCloud.cpp)  #生成可执行文件2 

再在qt里面,右上角,选File -> new file or project -> c++ ->c++ source file 输入name:” generatePointCloud.cpp “

一个路径问题
是我的第2个从图像到点云遇到的问题
(后面采用高博的src/CMakeLists.txt原文件,没这个问题,可以不用看
如果在编译时,出现找不到pcl路径,一般是改为直接路径,但这里问题在于,改完后发现,该路径里包含的其他文件路径也不对,但都是pcl 库的。
这里写图片描述
所以在  按照《CMake Practice》中第六章的设置,采用INCLUDE_DIRECTORIES命令去寻找共享库的路径,src/CMakeLists.txt如下:

include_directories(/usr/include/pcl-1.7)   

就可以啦
(有时候寻找库文件搜索,需要先进入一定路径下才行,一般在usr/include/下)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Discoverhub

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值