工程框架
文件存放内容 | 文件名 | CMakeLists.txt 设置 |
---|---|---|
二进制文件 | bin | set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) |
自己设置的头文件 | include | include_directories(${PROJECT_SOURCE_DIR}/include) (使用时调用include “myslam/xxx.h”,不易于别的库混淆) |
源代码文件 | src | add_subdirectory(src) |
测试文件 | test | add_subdirectory(test) |
配置文件 | config | yaml语言 |
第三方的cmake文件 | cmake_moudles | list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules) |
其他工具 | app | add_subdirectory(app) |
目标链接库文件的存放位置 | lib | set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) |
yaml语法
roslaunch 加载yaml
c++ 直接加载yaml
ex:
- yaml文件
image: ./map.pgm
resolution: 0.050000
origin: [-10.000000, -10.000000, 0.000000]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.196
- c++
#include "yaml-cpp/yaml.h"
#include <iostream>
using namespace std;
int main(int argc, const char** argv) {
YAML::Node config=YAML::LoadFile("/home/n1/notes/yaml/yaml_load_c/map.yaml");
cout<<"resolution"<<config["resolution"]<<endl;
cout<<"origin"<<config["origin"]<<endl;
return 0;
}
- CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(load_yaml)
add_compile_options(-std=c++11)
aux_source_directory(${PROJECT_SOURCE_DIR}/yaml_load_c yaml_load_c_src)
set(YAML_LIBS "/usr/local/lib/libyaml-cpp.so")
add_executable(yaml_load_c_exe ${yaml_load_c_src})
target_link_libraries(yaml_load_c_exe ${YAML_LIBS})
.cmake 编写
cmake语法
find_package深入理解
参考第14讲的实例,基本框架如下