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

来源:互联网 发布:steam网络无法连接 编辑:程序博客网 时间:2024/06/14 00:34

(在做高博的“一起做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/下)

原创粉丝点击