yamal-cpp 下载地址:
GitHub - jbeder/yaml-cpp: A YAML parser and emitter in C++
void testYamlLibs()
{
const std::string yamlFilePath="/home/tc/.../test/config.yaml";
YAML::Node root=YAML::LoadFile(yamlFilePath);
YAML::Node config=root["imgs"];
int height=config["height"].as<int>();
int width=config["width"].as<int>();
int channel=config["channel"].as<int>();
int batch=config["batch"].as<int>();
std::vector<float>img_mean=config["img_mean"].as<std::vector<float>>();
std::vector<float>img_std=config["img_std"].as<std::vector<float>>();
std::cout<<"the height of img"<<height<<std::endl;
for (auto i=0;i<img_mean.size();++i)
{
std::cout<<"mean: "<<img_mean[i]<<std::endl;
}
}
配置文件CMakeLists.txt:
cmake_minimum_required(VERSION 3.5)
project(test02)
set(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_STANDARD 14)
add_compile_options(-std=c++11 -fPIC )
set(YAML_INCLUDE /home/tc/.../includes/yaml-cpp-yaml-cpp-0.7.0/include/)
set(YAML_LIBS /home/tc/.../includes/yaml-cpp-yaml-cpp-0.7.0/build)
include_directories(${YAML_INCLUDE})
link_directories(${YAML_LIBS})
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} libyaml-cpp.a)
// 注:link_directories()与link_libraries()的混肴
// link_directories()添加的是链接库的路径,然后使用target_link_libraries链接库的名称
// 而link_libraries()直接添加库即可(例:/../../liba.so),须放在add_executable前面
config.yaml
imgs:
height: 35
width: 54
channel: 3
batch: 1
img_mean: [ 0.485, 0.456, 0.406 ]
img_std: [ 0.229, 0.224, 0.225 ]
onnx_file: "/home/.../ghostnet/yaban-model-2021-12-22.onnx"
engine_file: "/home/.../ghostnet/ghostnet.trt"