linux+win:proto编译问题方法总结 “object_detection/protos/*.proto: No such file or directory”

一般情况下在research文件夹下面运行:

protoc object_detection/protos/*.proto --python_out=.

——————————结果出错了。所以,看下面————————

win:

shift+右键 在Windows powershell中使用以下命令:

Get-ChildItem object_detection/protos/*.proto |Resolve-Path -Relative | %{protoc $_ --python_out=.}

如果没有 Windows powershell,自己百度,打开 Windows powershell 窗口,cmd下 上面命令不可用

win+linux 都可试一下

protoc .\object_detection\protos\string_int_label_map.proto --python_out=.

终极

该错误无非是不能批量编译,只能一个一个的编译,所以
新建批处理文件 xxx.bat,放在research下,双击运行

protoc object_detection\protos\anchor_generator.proto --python_out=.
protoc object_detection\protos\argmax_matcher.proto --python_out=.
protoc object_detection\protos\bipartite_matcher.proto --python_out=.
protoc object_detection\protos\box_coder.proto --python_out=.
protoc object_detection\protos\box_predictor.proto --python_out=.
protoc object_detection\protos\eval.proto --python_out=.
protoc object_detection\protos\faster_rcnn.proto --python_out=.
protoc object_detection\protos\faster_rcnn_box_coder.proto --python_out=.
protoc object_detection\protos\graph_rewriter.proto --python_out=.
protoc object_detection\protos\grid_anchor_generator.proto --python_out=.
protoc object_detection\protos\hyperparams.proto --python_out=.
protoc object_detection\protos\image_resizer.proto --python_out=.
protoc object_detection\protos\input_reader.proto --python_out=.
protoc object_detection\protos\keypoint_box_coder.proto --python_out=.
protoc object_detection\protos\losses.proto --python_out=.
protoc object_detection\protos\matcher.proto --python_out=.
protoc object_detection\protos\mean_stddev_box_coder.proto --python_out=.
protoc object_detection\protos\model.proto --python_out=.
protoc object_detection\protos\multiscale_anchor_generator.proto --python_out=.
protoc object_detection\protos\optimizer.proto --python_out=.
protoc object_detection\protos\pipeline.proto --python_out=.
protoc object_detection\protos\post_processing.proto --python_out=.
protoc object_detection\protos\preprocessor.proto --python_out=.
protoc object_detection\protos\region_similarity_calculator.proto --python_out=.
protoc object_detection\protos\square_box_coder.proto --python_out=.
protoc object_detection\protos\ssd.proto --python_out=.
protoc object_detection\protos\ssd_anchor_generator.proto --python_out=.
protoc object_detection\protos\string_int_label_map.proto --python_out=.
protoc object_detection\protos\train.proto --python_out=.
要读取上述YAML文件,可以使用适合的YAML解析库,例如YAML-CPP或YAMLCPP-Parser。以下是使用YAML-CPP的示例代码: ```cpp #include <iostream> #include <yaml-cpp/yaml.h> void readConfig(const YAML::Node& config) { if (config["general"]) { // 读取general字段的值 YAML::Node general = config["general"]; if (general["use_ros"]) { bool useRos = general["use_ros"].as<bool>(); std::cout << "use_ros: " << std::boolalpha << useRos << std::endl; } if (general["use_proto"]) { bool useProto = general["use_proto"].as<bool>(); std::cout << "use_proto: " << std::boolalpha << useProto << std::endl; } } if (config["sensor"]) { // 读取sensor字段的值 YAML::Node sensor = config["sensor"]; if (sensor["imu"]) { std::string imuInclude = sensor["imu"]["include"].as<std::string>(); std::cout << "imu include: " << imuInclude << std::endl; } if (sensor["gnss"]) { std::string gnssInclude = sensor["gnss"]["include"].as<std::string>(); std::cout << "gnss include: " << gnssInclude << std::endl; } if (sensor["odom"]) { std::string odomInclude = sensor["odom"]["include"].as<std::string>(); std::cout << "odom include: " << odomInclude << std::endl; } if (sensor["lidar"]) { std::string lidarInclude = sensor["lidar"]["include"].as<std::string>(); std::cout << "lidar include: " << lidarInclude << std::endl; } if (sensor["camera"]) { std::string cameraInclude = sensor["camera"]["include"].as<std::string>(); std::cout << "camera include: " << cameraInclude << std::endl; } if (sensor["radar"]) { std::string radarInclude = sensor["radar"]["include"].as<std::string>(); std::cout << "radar include: " << radarInclude << std::endl; } } } int main() { // 加载YAML文件 YAML::Node config = YAML::LoadFile("config.yaml"); // 读取配置 readConfig(config); return 0; } ``` 请确保将上述示例代码与YAML-CPP库一起编译、链接并运行。从YAML文件中读取的值将打印到控制台上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值