Slamtec / rplidar_ros

BSD 2-Clause "Simplified" License
482 stars 526 forks source link

build fail in manjaro #56

Open sai5555 opened 3 years ago

sai5555 commented 3 years ago

After I built code , it show build failed message. The following message : /home/robot/side_project/src/lidar/rplidar/sdk/src/arch/linux/net_socket.cpp:170:15: 錯誤:ordered comparison of pointer with integer zero (「const char*」 and 「int」)
170 | return ans<=0?RESULT_OPERATION_FAIL:RESULT_OK; | ~^
make[2]: [lidar/rplidar/CMakeFiles/rplidarNode.dir/build.make:104:lidar/rplidar/CMakeFiles/rplidarNode.dir/sdk/src/arch/linux/net_socket.cpp.o] 錯誤 1 make[2]: 正在等待未完成的作業.... /home/robot/side_project/src/lidar/rplidar/sdk/src/rplidar_driver.cpp: 在 「virtual u_result rp::standalone::rplidar::RPlidarDriverImplCommon::grabScanData (rplidar_response_measurement_node_t, size_t&, _u32)」 成員函式中: /home/robot/side_project/src/lidar/rplidar/sdk/src/rplidar_driver.cpp:1795:26: 錯誤:narrowing conversion of 「rp::hal::Event::EVENT_TIMEOUT」 from 「int」 to 「long unsigned int」 [-Wnarrowing] 1795 | case rp::hal::Event::EVENT_TIMEOUT: | ^~~~~ /home/robot/side_project/src/lidar/rplidar/sdk/src/rplidar_driver.cpp: 在 「virtual u_result rp::standalone::rplidar::RPlidarDriverImplCommon::grabScanData Hq(rplidar_response_measurement_node_hq_t, size_t&, _u32)」 成員函式中: /home/robot/side_project/src/lidar/rplidar/sdk/src/rplidar_driver.cpp:1824:26: 錯誤:narrowing conversion of 「rp::hal::Event::EVENT_TIMEOUT」 from 「int」 to 「long unsigned int」 [-Wnarrowing] 1824 | case rp::hal::Event::EVENT_TIMEOUT: | ^~~~~ make[2]: [lidar/rplidar/CMakeFiles/rplidarNode.dir/build.make:146:lidar/rplidar/CMakeFiles/rplidarNode.dir/sdk/src/rplidar_driver.cpp.o] 錯誤 1 make[1]: [CMakeFiles/Makefile2:39026:lidar/rplidar/CMakeFiles/rplidarNode.dir/all] 錯誤 2 make: *** [Makefile:146:all] 錯誤 2

ronaldluc commented 2 years ago

I've "solved" it by compiling/running it in a the ROS2 Docker with --device and --mount.

eg. docker run -it --mount type=bind,source="$(pwd)"/work,target=/home --device=/dev/tty0 --device=/dev/usb --device=/dev/bus/usb/001 ros