请问这个问题应该怎么解决
-
报错是[{
"resource": "/home/lzx/桌面/chapt7/damo_pkg_cpp/src/cpp_node.cpp",
"owner": "C/C++: IntelliSense",
"code": "1696",
"severity": 8,
"message": "检测到 #include 错误。请更新 includePath。已为此翻译单元(/home/lzx/桌面/chapt7/damo_pkg_cpp/src/cpp_node.cpp)禁用波形曲线。",
"source": "C/C++",
"startLineNumber": 3,
"startColumn": 1,
"endLineNumber": 3,
"endColumn": 33
},{
"resource": "/home/lzx/桌面/chapt7/damo_pkg_cpp/src/cpp_node.cpp",
"owner": "C/C++: IntelliSense",
"code": "1696",
"severity": 8,
"message": "无法打开 源 文件 "cv_bridge/cv_bridge.h"",
"source": "C/C++",
"startLineNumber": 3,
"startColumn": 1,
"endLineNumber": 3,
"endColumn": 33
}]程序是```
#include "rclcpp/rclcpp.hpp" #include "sensor_msgs/msg/image.hpp" #include "cv_bridge/cv_bridge.h" #include "opencv2/opencv.hpp" #include "image_transport/image_transport.hpp" class TextOverlay : public rclcpp::Node { public: TextOverlay() : Node("cpp_node") { publisher_ = image_transport::create_publisher(this, "/turtlesim/sim_with_text"); subscription_ = image_transport::create_subscription ( this, "/turtlesim/sim", [this](const sensor_msgs::msg::Image::ConstSharedPtr& msg) { this->image_callback(msg); }, "raw" ); } private: void image_callback(const sensor_msgs::msg::Image::ConstSharedPtr& msg) { try { cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(msg, "bgr8"); cv::putText( cv_ptr->image, "2024214969", cv::Point(50, 50), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(0, 0, 255), 2 ); publisher_.publish(cv_ptr->toImageMsg()); } catch (const cv_bridge::Exception& e) { RCLCPP_ERROR(this->get_logger(), "cv_bridge error: %s", e.what()); } } image_transport::Publisher publisher_; image_transport::Subscriber subscription_; }; int main(int argc, char** argv) { rclcpp::init(argc, argv); auto node = std::make_shared<TextOverlay>(); rclcpp::spin(node); rclcpp::shutdown(); return 0; }
CMAKE是
cmake_minimum_required(VERSION 3.8) project(damo_pkg_cpp) if(NOT CMAKE_CXX_STANDARD) set(CMAKE_CXX_STANDARD 14) endif() # find dependencies find_package(ament_cmake REQUIRED) # uncomment the following section in order to fill in # further dependencies manually. # find_package(<dependency> REQUIRED) find_package(OpenCV REQUIRED) find_package(rclcpp REQUIRED) find_package(sensor_msgs REQUIRED) find_package(cv_bridge REQUIRED) find_package(image_transport REQUIRED) add_executable(cpp_node src/cpp_node.cpp) target_include_directories ( cpp_node PRIVATE ${rclcpp_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${sensor_msgs_INCLUDE_DIRS} ${image_transport_INCLUDE_DIRS} ${cv_bridge_INCLUDE_DIRS} ) target_link_libraries ( cpp_node ${rclcpp_LIBRARIES} ${sensor_msgs_LIBRARIES} ${image_transport_LIBRARIES} ${cv_bridge_LIBRARIES} ${OpenCV_LIBRARIES} ) install(TARGETS cpp_node DESTINATION lib/${PROJECT_NAME} ) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) # the following line skips the linter which checks for copyrights # comment the line when a copyright and license is added to all source files set(ament_cmake_copyright_FOUND TRUE) # the following line skips cpplint (only works in a git repo) # comment the line when this package is in a git repo and when # a copyright and license is added to all source files set(ament_cmake_cpplint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() ament_package()
json是``` { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/opt/ros/jazzy/include/**", "/usr/include/**", "/usr/include/opencv4/**" ], "defines": [], "compilerPath": "/usr/bin/g++", "cStandard": "c17", "cppStandard": "gnu++14", "intelliSenseMode": "linux-gcc-x64" } ], "version": 4 }
-
此回复已被删除!