SLAM14讲 CMake Error at /usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake:21 (file):

时间: 2025-09-03 16:49:03 AIGC 浏览: 17
<think> 首先,用户的问题是关于SLAM14讲中CMake报错的解决方案。错误是:'CMake Error at /usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake:21 (file)'。我需要基于提供的引用和相关知识给出解答。 从引用中: - 引用[1]描述了交叉编译工具的配置,但用户的问题是本地编译错误,可能不直接相关。 - 引用[2]提到了"No rule to make target"错误,类似于找不到库文件的问题。 - 引用[3]建议使用ldd检查动态库依赖。 - 引用[4]展示了如何定位库文件的位置。 - 引用[5]讨论了PCL库相关的未定义引用错误。 用户的具体错误发生在FindEigen.cmake文件的第21行。这个文件是PCL库用来查找Eigen库的CMake模块。错误可能是由于Eigen库缺失或路径错误引起的。 在SLAM14讲中,通常涉及PCL(Point Cloud Library)和Eigen库。Eigen是一个线性代数库,PCL依赖它。 可能的解决方案: 1. **确保Eigen已安装**:检查Eigen是否安装在系统上。可以使用命令`sudo apt-get install libeigen3-dev`(在Ubuntu上)来安装。 2. **检查Eigen版本**:PCL可能需要特定版本的Eigen。确保版本兼容。 3. **CMake配置问题**:错误发生在FindEigen.cmake文件中,可能是CMake找不到Eigen。需要设置CMake的路径或环境变量。 4. **参考错误信息**:错误是"(file)",可能表示文件读取错误或路径不存在。检查路径`/usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake`是否存在。如果不存在,可能需要重新安装PCL或相关包。 5. **使用引用中的建议**:从引用[4],可以使用`locate`命令查找文件。例如,`locate FindEigen.cmake`或`locate Eigen`来确认文件位置。 6. **更新CMake或包**:确保所有依赖是最新的。 结构化回答: - **步骤1:确认错误**:解释错误可能的原因。 - **步骤2:解决方案**: - 安装或更新Eigen库。 - 检查PCL安装。 - 使用ldd或locate检查库路径(基于引用[3]和[4])。 - 手动指定Eigen路径在CMake中。 - **步骤3:验证**:建议测试安装后重新运行CMake。 添加引用标识:在回答末尾自然地添加引用,如基于引用[4]建议locate命令。 生成相关问题:根据用户查询,生成相关问题,如: 1. 如何安装特定版本的Eigen库? 2. CMake中如何设置库路径? 3. SLAM14讲中其他常见CMake错误解决方案? 使用中文回答:整个回答用中文。 LaTeX格式:使用$...$或$$...$$。错误消息如路径名不需要LaTeX,但如果有数学表达式,如版本号,可能用到。例如,Eigen版本号不需要LaTeX,除非特别说明。 回答结构: - 引言:重述问题。 - 分析原因。 - 解决方案步骤。 - 相关问题。 - 引用标识。 </think> ### 解决SLAM14讲中CMake在FindEigen.cmake报错的问题 您的错误信息 `CMake Error at /usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake:21 (file)` 通常发生在编译SLAM14讲项目时,CMake试图查找Eigen库(一个线性代数库)但失败。这可能是由于Eigen库未正确安装、路径配置不当或版本不兼容导致的。下面我将一步步引导您解决此问题。解决方案基于CMake和Linux系统的常见实践,并结合了站内引用中的相关建议。 #### 错误原因分析 - **核心问题**:CMake的`FindEigen.cmake`脚本(由PCL库提供)无法定位Eigen库的头文件或库文件。这通常因为: - Eigen库未安装或安装不完整。 - Eigen版本与PCL不兼容(SLAM14讲推荐Eigen 3.3.x)。 - CMake搜索路径错误,系统路径中缺少必要的文件。 - **引用参考**:类似错误在引用[2]和[5]中出现过,涉及库文件缺失或路径问题[^2][^5]。 #### 逐步解决方案 遵循以下步骤检查和修复错误。请确保在终端中操作,并使用适当的权限(如`sudo`)。 1. **确认Eigen库是否安装** 首先检查Eigen是否已安装。在终端运行: ```bash # 检查Eigen版本 pkg-config --modversion eigen3 ``` 如果输出类似`3.3.7`的版本号,说明已安装;如果输出为空或报错,则需安装。 - **安装Eigen**(推荐使用APT包管理器): ```bash sudo apt-get update sudo apt-get install libeigen3-dev ``` SLAM14讲通常兼容Eigen 3.3.x,如果安装后版本过高,可能需要降级(见相关问题1)。 2. **验证Eigen文件路径** 错误发生在`/usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake`,需确认该文件是否存在。运行: ```bash # 检查FindEigen.cmake文件是否存在 ls /usr/lib/x86_64-linux-gnu/cmake/pcl/Modules/FindEigen.cmake ``` - 如果文件不存在,可能是PCL安装不完整。重新安装PCL: ```bash sudo apt-get install libpcl-dev ``` - 使用`locate`命令查找Eigen相关文件(参考引用[4]): ```bash sudo updatedb # 更新数据库 locate eigen3 | grep .cmake # 查找Eigen的CMake文件 ``` 输出应包含路径如`/usr/lib/cmake/eigen3`或`/usr/share/eigen3/cmake`。如果找不到,说明安装有问题[^4]。 3. **修复CMake配置** - **手动指定Eigen路径**:在您的CMakeLists.txt文件中添加Eigen路径。例如,在`project(...)`后插入: ```cmake # 手动设置Eigen路径 set(Eigen3_DIR "/usr/include/eigen3") # 默认路径,根据locate结果调整 find_package(Eigen3 REQUIRED) include_directories(${Eigen3_INCLUDE_DIRS}) ``` - 如果`locate`显示Eigen路径不同(如`/usr/local/include/eigen3`),请相应修改。 - **检查PCL配置**:确保PCL已正确安装并链接。运行: ```bash # 检查PCL库文件 locate libpcl ``` 如果输出不足,重新安装`libpcl-dev`。 4. **清理和重新编译** - 删除之前的CMake缓存: ```bash rm -rf build/ # 假设构建目录为build mkdir build && cd build ``` - 重新运行CMake,添加详细日志以诊断: ```bash cmake .. -DCMAKE_BUILD_TYPE=Release --trace-expand > cmake_log.txt 2>&1 ``` 查看`cmake_log.txt`文件,搜索`FindEigen.cmake:21`,确认具体错误细节。 - 如果仍有问题,使用`ldd`检查依赖(参考引用[3])。编译后对可执行文件运行: ```bash ldd ./your_executable # 替换为您的可执行文件名 ``` 确保输出中包含Eigen和PCL的相关库(如`libeigen3.so`)[^3]。 5. **处理版本兼容性问题** - 如果Eigen版本过高(如4.0+),PCL可能不支持。降级到Eigen 3.3: ```bash sudo apt-get install libeigen3-dev=3.3.7-2 # 版本号可能因系统而异 ``` - 更新CMake和系统: ```bash sudo apt-get upgrade cmake ``` #### 验证修复 完成上述步骤后,重新运行CMake。如果成功,您将不再看到该错误。否则,请提供`cmake_log.txt`中的错误详情以便进一步分析。 ### 相关问题 1. 如何在Ubuntu上安装特定版本的Eigen库(如3.3.x)? 2. CMake中如何手动设置库搜索路径以解决类似错误? 3. SLAM14讲中遇到PCL相关未定义引用错误(如引用[5])时,应如何解决? [^2]: 类似库缺失错误需检查安装完整性。 [^3]: `ldd`命令用于动态库依赖检测。 [^4]: `locate`命令可快速定位文件路径。 [^5]: PCL库错误常源于依赖配置不当。
阅读全文

相关推荐

-- livox_ros_driver2: 2 messages, 0 services /usr/include/apr-1.0 apr-1 -- +++ processing catkin package: 'fast_lio' -- ==> add_subdirectory(FAST_LIO_SLAM/FAST-LIO) Current CPU archtecture: x86_64 Processer number: 24 core for MP: 3 -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Eigen found (include: /usr/include/eigen3, version: 3.3.7) -- The imported target "vtkParseOGLExt" references the file "/usr/bin/vtkParseOGLExt-7.1" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-7.1/VTKTargets.cmake" but not all the files it references. -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-7.1/VTKTargets.cmake" but not all the files it references. -- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-7.1/VTKTargets.cmake" but not all the files it references. -- The imported target "pvtk" references the file "/usr/bin/pvtk" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-7.1/VTKTargets.cmake" but not all the files it references. -- OpenNI found (include: /usr/include/ni, lib: /usr/lib/libOpenNI.so) -- OpenNI2 found (include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so) ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled ** WARNING ** io features related to libusb-1.0 will be disabled -- OpenNI found (include: /usr/include/ni, lib: /usr/lib/libOpenNI.so) -- OpenNI2 found (include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so) -- QHULL found (include: /usr/include, lib: optimized;/usr/lib/x86_64-linux-gnu/libqhull.so;debug;/usr/lib/x86_64-linux-gnu/libqhull.so) -- OpenNI found (include: /usr/include/ni, lib: /usr/lib/libOpenNI.so) -- looking for PCL_COMMON -- looking for PCL_KDTREE -- looking for PCL_OCTREE -- looking for PCL_SEARCH -- looking for PCL_SAMPLE_CONSENSUS -- looking for PCL_FILTERS -- looking for PCL_2D -- looking for PCL_GEOMETRY -- looking for PCL_IO -- looking for PCL_FEATURES -- looking for PCL_ML -- looking for PCL_SEGMENTATION -- looking for PCL_VISUALIZATION -- looking for PCL_SURFACE -- looking for PCL_REGISTRATION -- looking for PCL_KEYPOINTS -- looking for PCL_TRACKING -- looking for PCL_RECOGNITION -- looking for PCL_STEREO -- looking for PCL_APPS -- looking for PCL_IN_HAND_SCANNER -- looking for PCL_POINT_CLOUD_EDITOR -- looking for PCL_OUTOFCORE -- looking for PCL_PEOPLE -- Found PCL: pcl_common;pcl_kdtree;pcl_octree;pcl_search;pcl_sample_consensus;pcl_filters;pcl_io;pcl_features;pcl_ml;pcl_segmentation;pcl_visualization;pcl_surface;pcl_registration;pcl_keypoints;pcl_tracking;pcl_recognition;pcl_stereo;pcl_apps;pcl_outofcore;pcl_people;/usr/lib/x86_64-linux-gnu/libboost_system.so;/usr/lib/x86_64-linux-gnu/libboost_filesystem.so;/usr/lib/x86_64-linux-gnu/libboost_date_time.so;/usr/lib/x86_64-linux-gnu/libboost_iostreams.so;/usr/lib/x86_64-linux-gnu/libboost_regex.so;optimized;/usr/lib/x86_64-linux-gnu/libqhull.so;debug;/usr/lib/x86_64-linux-gnu/libqhull.so;/usr/lib/libOpenNI.so;/usr/lib/libOpenNI2.so;vtkChartsCore;vtkCommonColor;vtkCommonCore;vtksys;vtkCommonDataModel;vtkCommonMath;vtkCommonMisc;vtkCommonSystem;vtkCommonTransforms;vtkCommonExecutionModel;vtkFiltersGeneral;vtkCommonComputationalGeometry;vtkFiltersCore;vtkInfovisCore;vtkFiltersExtraction;vtkFiltersStatistics;vtkImagingFourier;vtkImagingCore;vtkalglib;vtkRenderingContext2D;vtkRenderingCore;vtkFiltersGeometry;vtkFiltersSources;vtkRenderingFreeType;/usr/lib/x86_64-linux-gnu/libfreetype.so;/usr/lib/x86_64-linux-gnu/libz.so;vtkFiltersModeling;vtkImagingSources;vtkInteractionStyle;vtkInteractionWidgets;vtkFiltersHybrid;vtkImagingColor;vtkImagingGeneral;vtkImagingHybrid;vtkIOImage;vtkDICOMParser;vtkmetaio;/usr/lib/x86_64-linux-gnu/libjpeg.so;/usr/lib/x86_64-linux-gnu/libpng.so;/usr/lib/x86_64-linux-gnu/libtiff.so;vtkRenderingAnnotation;vtkRenderingVolume;vtkIOXML;vtkIOCore;vtkIOXMLParser;/usr/lib/x86_64-linux-gnu/libexpat.so;vtkIOGeometry;vtkIOLegacy;vtkIOPLY;vtkRenderingLOD;vtkViewsContext2D;vtkViewsCore;vtkRenderingContextOpenGL2;vtkRenderingOpenGL2;FLANN::FLANN (Required is at least version "1.8") Eigen:/usr/local/include/eigen3 -- fast_lio: 1 messages, 0 services -- +++ processing catkin package: 'fast_livo' -- ==> add_subdirectory(fast-livo2-native) -- Build Type: Release -- Current CPU architecture: x86_64 -- Using general x86 optimizations: -O3 -march=native -mtune=native -funroll-loops -- Processor count: 24 -- Multithreading enabled. Cores: 4 -- OpenMP found -- mimalloc not found, proceeding without it -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Could NOT find vikit_common (missing: vikit_common_DIR) -- Could not find the required component 'vikit_common'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "vikit_common" with any of the following names: vikit_commonConfig.cmake vikit_common-config.cmake Add the installation prefix of "vikit_common" to CMAKE_PREFIX_PATH or set "vikit_common_DIR" to a directory containing one of the above files. If "vikit_common" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): fast-livo2-native/CMakeLists.txt:81 (find_package) -- Configuring incomplete, errors occurred! See also "/home/lixing/slam/Fast-LIO2/build/CMakeFiles/CMakeOutput.log". See also "/home/lixing/slam/Fast-LIO2/build/CMakeFiles/CMakeError.log". Invoking "cmake" failed lixing@DESKTOP-2PJK7EV:~/slam/Fast-LIO2$

dxinl@dxinl-NUC13VYKi5:~/orb_slam2/semantic_-mapping_on_-orbslam$ cd /home/dxinl/orb_slam2/semantic_-mapping_on_-orbslam && ./build.sh Configuring and building Thirdparty/DBoW2 ... mkdir: 无法创建目录 “build”: 文件已存在 -- Configuring done -- Generating done -- Build files have been written to: /home/dxinl/orb_slam2/semantic_-mapping_on_-orbslam/Thirdparty/DBoW2/build [100%] Built target DBoW2 Configuring and building Thirdparty/g2o ... mkdir: 无法创建目录 “build”: 文件已存在 -- BUILD TYPE:Release -- Compiling on Unix -- Configuring done -- Generating done -- Build files have been written to: /home/dxinl/orb_slam2/semantic_-mapping_on_-orbslam/Thirdparty/g2o/build [100%] Built target g2o Uncompress vocabulary ... Configuring and building ORB_SLAM2 ... mkdir: 无法创建目录 “build”: 文件已存在 Build type: Release -- Eigen found (include: /usr/include/eigen3, version: 3.3.7) -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so) -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so) ** WARNING ** io features related to pcap will be disabled ** WARNING ** io features related to png will be disabled -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so) -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so) -- looking for PCL_COMMON -- looking for PCL_OCTREE -- looking for PCL_IO -- looking for PCL_KDTREE -- looking for PCL_GEOMETRY -- looking for PCL_SEARCH -- looking for PCL_VISUALIZATION -- looking for PCL_SAMPLE_CONSENSUS -- looking for PCL_FILTERS -- Eigen3 found at: /usr/include/eigen3 -- Eigen3_DIR set to: /usr/include/eigen3 CMake Error at CMakeLists.txt:53 (find_package): Found package configuration file: /usr/local/lib/cmake/Pangolin/PangolinConfig.cmake but it set Pangolin_FOUND to FALSE so package "Pangolin" is considered to be NOT FOUND. Reason given by package: Pangolin could not be found because dependency Eigen3 could not

libration_cameraimu/libcalibration_cameraimu.so: undefined reference to glPushMatrix' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glBindTexture' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to KeyFrameDatabase::KeyFrameDatabase()' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glTexParameteri' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glEnd' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glBegin' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glPopMatrix' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glDeleteTextures' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glGetError' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to vtable for pangolin::HandlerScroll' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to pangolin::ShouldQuit()' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glVertex3f' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glLineWidth' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to pangolin::OpenGlMatrix::SetIdentity()' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to pangolin::glErrorString(unsigned int)' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to vtable for pangolin::Handler' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to cv::imshow(cv::String const&, cv::_InputArray const&)' /usr/bin/ld: /home/lh/business_logic_modules/src/component_packages/calibration_manager/../../../mobile_robot_platform/ros2_ws/install/calibration_cameraimu/lib/calibration_cameraimu/libcalibration_cameraimu.so: undefined reference to glTexImage2D' collect2: error: ld returned 1 exit status gmake[2]: *** [CMakeFiles/calibration_manager_node.dir/build.make:333:calibration_manager_node] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:137:CMakeFiles/calibration_manager_node.dir/all] 错误 2 gmake: *** [Makefile:146:all] 错误 2 ---

(SGSlam) huoduo@huoduo:~/SG-SLAM$ catkin_make --pkg cv_bridge Base path: /home/huoduo/SG-SLAM Source space: /home/huoduo/SG-SLAM/src Build space: /home/huoduo/SG-SLAM/build Devel space: /home/huoduo/SG-SLAM/devel Install space: /home/huoduo/SG-SLAM/install #### #### Running command: "make cmake_check_build_system" in "/home/huoduo/SG-SLAM/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/huoduo/SG-SLAM/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/noetic -- This workspace overlays: /opt/ros/noetic -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") -- Using PYTHON_EXECUTABLE: /usr/bin/python3 -- Using Debian Python package layout -- Using empy: /usr/lib/python3/dist-packages/em.py -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/huoduo/SG-SLAM/build/test_results -- Forcing gtest/gmock from source, though one was otherwise available. -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python3 (found version "3.8.10") -- Using Python nosetests: /usr/bin/nosetests3 -- catkin 0.8.10 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 4 packages in topological order: -- ~~ - cv_bridge -- ~~ - image_geometry -- ~~ - octomap_server -- ~~ - sg-slam -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'cv_bridge' -- ==> add_subdirectory(cv_bridge) -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.8.so (found version "3.8.10") -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found version "1.71.0") found components: python -- Found OpenCV: /usr/local (found suitable version "4.2.0", minimum required is "4") found components: opencv_core opencv_imgproc opencv_imgcodecs -- Found PythonLibs: /usr/lib/x86_64-linux

jetson@ubuntu:~/mid360_ros1_02$ find devel/ -name gf_send 2>/dev/null devel/lib/chuankou/gf_send devel/lib/gf_send devel/lib/gf_send/gf_send jetson@ubuntu:~/mid360_ros1_02$ ldd devel/lib/chuankou/gf_send | grep libserial libserial.so => /opt/ros/noetic/lib/libserial.so (0x0000ffffb89f8000) jetson@ubuntu:~/mid360_ros1_02$ catkin_make -DCMAKE_VERBOSE_MAKEFILE=ON Base path: /home/jetson/mid360_ros1_02 Source space: /home/jetson/mid360_ros1_02/src Build space: /home/jetson/mid360_ros1_02/build Devel space: /home/jetson/mid360_ros1_02/devel Install space: /home/jetson/mid360_ros1_02/install #### #### Running command: "cmake /home/jetson/mid360_ros1_02/src -DCMAKE_VERBOSE_MAKEFILE=ON -DCATKIN_DEVEL_PREFIX=/home/jetson/mid360_ros1_02/devel -DCMAKE_INSTALL_PREFIX=/home/jetson/mid360_ros1_02/install -G Unix Makefiles" in "/home/jetson/mid360_ros1_02/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/jetson/mid360_ros1_02/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/noetic;/home/jetson/ydlidar_ws_src/install/ydlidar_ros2_driver;/home/jetson/ydlidar_ws_src/install/yahboomcar_msgs;/home/jetson/ydlidar_ws_src/install/yahboom_web_savmap_interfaces;/home/jetson/ydlidar_ws_src/install/slam_gmapping;/home/jetson/ydlidar_ws_src/install/robot_pose_publisher_ros2;/home/jetson/ydlidar_ws_src/install/openslam_gmapping -- This workspace overlays: /opt/ros/noetic -- Found PythonInterp: /usr/bin/python3 (found suitable version "3.8.10", minimum required is "3") -- Using PYTHON_EXECUTABLE: /usr/bin/python3 -- Using Debian Python package layout -- Using empy: /usr/lib/python3/dist-packages/em.py -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/jetson/mid360_ros1_02/build/test_results -- Forcing gtest/gmock from source, though one was otherwise available. -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built CMake Deprecation Warning at /usr/src/googletest/CMakeLists.txt:4 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. CMake Deprecation Warning at /usr/src/googletest/googlemock/CMakeLists.txt:45 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. CMake Deprecation Warning at /usr/src/googletest/googletest/CMakeLists.txt:56 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- Found PythonInterp: /usr/bin/python3 (found version "3.8.10") -- Using Python nosetests: /usr/bin/nosetests3 -- catkin 0.8.10 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- Using CATKIN_WHITELIST_PACKAGES: chuankou;my_robot -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 2 packages in topological order: -- ~~ - my_robot -- ~~ - chuankou -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'my_robot' -- ==> add_subdirectory(my_robot) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- my_robot: 1 messages, 0 services -- +++ processing catkin package: 'chuankou' -- ==> add_subdirectory(chuankou) -- Configuring done -- Generating done -- Build files have been written to: /home/jetson/mid360_ros1_02/build #### #### Running command: "make -j8 -l8" in "/home/jetson/mid360_ros1_02/build" #### /usr/local/bin/cmake -S/home/jetson/mid360_ros1_02/src -B/home/jetson/mid360_ros1_02/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/local/bin/cmake -E cmake_progress_start /home/jetson/mid360_ros1_02/build/CMakeFiles /home/jetson/mid360_ros1_02/build//CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: 进入目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/_my_robot_generate_messages_check_deps_Position.dir/build.make my_robot/CMakeFiles/_my_robot_generate_messages_check_deps_Position.dir/depend make -f my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/depend make -f my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/depend make -f my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/depend make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/_my_robot_generate_messages_check_deps_Position.dir/DependInfo.cmake --color= make -f my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/depend make -f my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/depend make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/DependInfo.cmake --color= make -f chuankou/CMakeFiles/gf_send.dir/build.make chuankou/CMakeFiles/gf_send.dir/depend make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/chuankou /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/chuankou /home/jetson/mid360_ros1_02/build/chuankou/CMakeFiles/gf_send.dir/DependInfo.cmake --color= make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/_my_robot_generate_messages_check_deps_Position.dir/build.make my_robot/CMakeFiles/_my_robot_generate_messages_check_deps_Position.dir/build make -f my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/build make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/build make -f my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/build make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build/my_robot && ../catkin_generated/env_cached.sh /usr/bin/python3 /opt/ros/noetic/share/genmsg/cmake/../../../lib/genmsg/genmsg_check_deps.py my_robot /home/jetson/mid360_ros1_02/src/my_robot/msg/Position.msg make -f my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/std_msgs_generate_messages_py.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/build.make my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/build make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/std_msgs_generate_messages_cpp.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/std_msgs_generate_messages_lisp.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/std_msgs_generate_messages_nodejs.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” Consolidate compiler generated dependencies of target gf_send make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/std_msgs_generate_messages_eus.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_cpp [ 0%] Built target std_msgs_generate_messages_lisp [ 0%] Built target std_msgs_generate_messages_eus make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f chuankou/CMakeFiles/gf_send.dir/build.make chuankou/CMakeFiles/gf_send.dir/build make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” [ 11%] Linking CXX executable /home/jetson/mid360_ros1_02/devel/lib/chuankou/gf_send cd /home/jetson/mid360_ros1_02/build/chuankou && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/gf_send.dir/link.txt --verbose=1 /usr/bin/c++ -O3 -DNDEBUG -rdynamic CMakeFiles/gf_send.dir/src/gf_send.cpp.o -o /home/jetson/mid360_ros1_02/devel/lib/chuankou/gf_send -Wl,-rpath,/opt/ros/noetic/lib: /opt/ros/noetic/lib/libroscpp.so -lpthread /usr/lib/aarch64-linux-gnu/libboost_chrono.so.1.71.0 /usr/lib/aarch64-linux-gnu/libboost_filesystem.so.1.71.0 /opt/ros/noetic/lib/librosconsole.so /opt/ros/noetic/lib/librosconsole_log4cxx.so /opt/ros/noetic/lib/librosconsole_backend_interface.so -llog4cxx /usr/lib/aarch64-linux-gnu/libboost_regex.so.1.71.0 /opt/ros/noetic/lib/libxmlrpcpp.so /opt/ros/noetic/lib/libroscpp_serialization.so /opt/ros/noetic/lib/librostime.so /usr/lib/aarch64-linux-gnu/libboost_date_time.so.1.71.0 /opt/ros/noetic/lib/libcpp_common.so /usr/lib/aarch64-linux-gnu/libboost_system.so.1.71.0 /usr/lib/aarch64-linux-gnu/libboost_thread.so.1.71.0 /usr/lib/aarch64-linux-gnu/libconsole_bridge.so.0.4 /opt/ros/noetic/lib/libserial.so make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” [ 11%] Built target _my_robot_generate_messages_check_deps_Position make -f my_robot/CMakeFiles/my_robot_generate_messages_py.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_py.dir/depend make -f my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/depend make -f my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/depend make -f my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/depend make -f my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/depend make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages_py.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/DependInfo.cmake --color= make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/DependInfo.cmake --color= make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/my_robot_generate_messages_py.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_py.dir/build make -f my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/build make -f my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/build make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/build make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/build make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages_py.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages_cpp.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages_lisp.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages_eus.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages_nodejs.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” [ 55%] Built target my_robot_generate_messages_cpp [ 55%] Built target my_robot_generate_messages_lisp [ 77%] Built target my_robot_generate_messages_eus [ 77%] Built target my_robot_generate_messages_py [ 88%] Built target my_robot_generate_messages_nodejs make -f my_robot/CMakeFiles/my_robot_generate_messages.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages.dir/depend make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” cd /home/jetson/mid360_ros1_02/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/jetson/mid360_ros1_02/src /home/jetson/mid360_ros1_02/src/my_robot /home/jetson/mid360_ros1_02/build /home/jetson/mid360_ros1_02/build/my_robot /home/jetson/mid360_ros1_02/build/my_robot/CMakeFiles/my_robot_generate_messages.dir/DependInfo.cmake --color= make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” make -f my_robot/CMakeFiles/my_robot_generate_messages.dir/build.make my_robot/CMakeFiles/my_robot_generate_messages.dir/build make[2]: 进入目录“/home/jetson/mid360_ros1_02/build” make[2]: 对“my_robot/CMakeFiles/my_robot_generate_messages.dir/build”无需做任何事。 make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” [ 88%] Built target my_robot_generate_messages make[2]: 离开目录“/home/jetson/mid360_ros1_02/build” [100%] Built target gf_send make[1]: 离开目录“/home/jetson/mid360_ros1_02/build” /usr/local/bin/cmake -E cmake_progress_start /home/jetson/mid360_ros1_02/build/CMakeFiles 0

EPRobot@EPRobot:~/robot_ws$ cd ~/robot_ws # 在每次打开新终端时运行 EPRobot@EPRobot:~/robot_ws$ catkin_make Base path: /home/EPRobot/robot_ws Source space: /home/EPRobot/robot_ws/src Build space: /home/EPRobot/robot_ws/build Devel space: /home/EPRobot/robot_ws/devel Install space: /home/EPRobot/robot_ws/install #### #### Running command: "make cmake_check_build_system" in "/home/EPRobot/robot_ws/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/EPRobot/robot_ws/devel -- Using CMAKE_PREFIX_PATH: /home/EPRobot/robot_ws/devel;/opt/ros/melodic -- This workspace overlays: /home/EPRobot/robot_ws/devel;/opt/ros/melodic -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python2 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/EPRobot/robot_ws/build/test_results -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python2 (found version "2.7.17") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 62 packages in topological order: -- ~~ - astra_launch -- ~~ - base_control -- ~~ - hibot_follower -- ~~ - lslidar (metapackage) -- ~~ - navigation (metapackage) -- ~~ - robot_navigation -- ~~ - robot_upstart -- ~~ - simple_navigation_goals -- ~~ - lslidar_msgs -- ~~ - rospy_message_converter -- ~~ - eprobot_auto_home -- ~~ - eprobot_start -- ~~ - ls01d -- ~~ - map_server -- ~~ - hls_lfcd_lds_driver -- ~~ - iiiroboticslidar2 -- ~~ - astra_camera -- ~~ - rplidar_ros -- ~~ - eprobot_joy -- ~~ - lslidar_driver -- ~~ - robot_pose_ekf -- ~~ - sc_mini -- ~~ - amcl -- ~~ - fake_localization -- ~~ - laser_filters -- ~~ - robot_localization -- ~~ - track_detection -- ~~ - voxel_grid -- ~~ - costmap_2d -- ~~ - nav_core -- ~~ - base_local_planner -- ~~ - carrot_planner -- ~~ - clear_costmap_recovery -- ~~ - dwa_local_planner -- ~~ - move_slow_and_clear -- ~~ - navfn -- ~~ - global_planner -- ~~ - rotate_recovery -- ~~ - move_base -- ~~ - teb_local_planner -- ~~ - eprobot_description -- ~~ - xf_mic_asr_offline -- ~~ - ydlidar -- ~~ - yocs_ar_pair_approach -- ~~ - yocs_cmd_vel_mux -- ~~ - yocs_controllers -- ~~ - yocs_keyop -- ~~ - yocs_localization_manager -- ~~ - yocs_math_toolkit -- ~~ - yocs_ar_marker_tracking -- ~~ - yocs_diff_drive_pose_controller -- ~~ - yocs_ar_pair_tracking -- ~~ - yocs_joyop -- ~~ - yocs_navi_toolkit -- ~~ - yocs_navigator -- ~~ - yocs_rapps -- ~~ - yocs_safety_controller -- ~~ - yocs_velocity_smoother -- ~~ - yocs_virtual_sensor -- ~~ - yocs_waypoint_provider -- ~~ - yocs_waypoints_navi -- ~~ - yujin_ocs (metapackage) -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'astra_launch' -- ==> add_subdirectory(ros_astra_launch) -- +++ processing catkin package: 'base_control' -- ==> add_subdirectory(base_control) -- +++ processing catkin package: 'hibot_follower' -- ==> add_subdirectory(hibot_follower) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message): catkin_package() DEPENDS on 'system_lib' but neither 'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined. Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package) hibot_follower/CMakeLists.txt:24 (catkin_package) -- +++ processing catkin metapackage: 'lslidar' -- ==> add_subdirectory(lslidar) -- +++ processing catkin metapackage: 'navigation' -- ==> add_subdirectory(navigation-melodic/navigation) -- +++ processing catkin package: 'robot_navigation' -- ==> add_subdirectory(robot_navigation) -- +++ processing catkin package: 'robot_upstart' -- ==> add_subdirectory(robot_upstart) -- +++ processing catkin package: 'simple_navigation_goals' -- ==> add_subdirectory(simple_navigation_goals) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'lslidar_msgs' -- ==> add_subdirectory(lslidar_msgs) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- lslidar_msgs: 5 messages, 0 services -- +++ processing catkin package: 'rospy_message_converter' -- ==> add_subdirectory(rospy_message_converter) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- rospy_message_converter: 4 messages, 1 services -- +++ processing catkin package: 'eprobot_auto_home' -- ==> add_subdirectory(eprobot_auto_home) -- +++ processing catkin package: 'eprobot_start' -- ==> add_subdirectory(eprobot_start) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message): catkin_package() DEPENDS on 'system_lib' but neither 'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined. Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package) eprobot_start/CMakeLists.txt:24 (catkin_package) -- +++ processing catkin package: 'ls01d' -- ==> add_subdirectory(lidar/ls01d) -- +++ processing catkin package: 'map_server' -- ==> add_subdirectory(navigation-melodic/map_server) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- filesystem -- system -- +++ processing catkin package: 'hls_lfcd_lds_driver' -- ==> add_subdirectory(lidar/hls_lfcd_lds_driver) -- Boost version: 1.65.1 -- +++ processing catkin package: 'iiiroboticslidar2' -- ==> add_subdirectory(lidar/iiiroboticslidar2_ros) -- +++ processing catkin package: 'astra_camera' -- ==> add_subdirectory(ros_astra_camera) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- thread -- chrono -- date_time -- atomic -- ORRBEC Machine : aarch64 -- ORRBEC Machine Bits : 64 -- ORRBEC : arm64 -- libuvc 0.0.6 -- astra_camera: 0 messages, 19 services -- +++ processing catkin package: 'rplidar_ros' -- ==> add_subdirectory(lidar/rplidar_ros) -- +++ processing catkin package: 'eprobot_joy' -- ==> add_subdirectory(eprobot_joy) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message): catkin_package() DEPENDS on 'system_lib' but neither 'system_lib_INCLUDE_DIRS' nor 'system_lib_LIBRARIES' is defined. Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package) eprobot_joy/CMakeLists.txt:39 (catkin_package) -- +++ processing catkin package: 'lslidar_driver' -- ==> add_subdirectory(lslidar_driver) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 CMake Warning at /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:166 (message): catkin_package() DEPENDS on 'boost' but neither 'boost_INCLUDE_DIRS' nor 'boost_LIBRARIES' is defined. Call Stack (most recent call first): /opt/ros/melodic/share/catkin/cmake/catkin_package.cmake:102 (_catkin_package) lslidar_driver/CMakeLists.txt:22 (catkin_package) -- +++ processing catkin package: 'robot_pose_ekf' -- ==> add_subdirectory(robot_pose_ekf) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- thread -- chrono -- system -- date_time -- atomic -- robot_pose_ekf: 0 messages, 1 services -- +++ processing catkin package: 'sc_mini' -- ==> add_subdirectory(lidar/sc_mini) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- +++ processing catkin package: 'amcl' -- ==> add_subdirectory(navigation-melodic/amcl) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- +++ processing catkin package: 'fake_localization' -- ==> add_subdirectory(navigation-melodic/fake_localization) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- +++ processing catkin package: 'laser_filters' -- ==> add_subdirectory(laser_filters) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- +++ processing catkin package: 'robot_localization' -- ==> add_subdirectory(robot_localization) robot_localization: You did not request a specific build type: selecting 'RelWithDebInfo'. -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- robot_localization: 0 messages, 7 services -- +++ processing catkin package: 'track_detection' -- ==> add_subdirectory(track_detection) -- +++ processing catkin package: 'voxel_grid' -- ==> add_subdirectory(navigation-melodic/voxel_grid) -- +++ processing catkin package: 'costmap_2d' -- ==> add_subdirectory(navigation-melodic/costmap_2d) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- thread -- chrono -- date_time -- atomic -- costmap_2d: 1 messages, 0 services -- +++ processing catkin package: 'nav_core' -- ==> add_subdirectory(navigation-melodic/nav_core) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'base_local_planner' -- ==> add_subdirectory(navigation-melodic/base_local_planner) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- thread -- chrono -- system -- date_time -- atomic -- base_local_planner: 1 messages, 0 services -- +++ processing catkin package: 'carrot_planner' -- ==> add_subdirectory(navigation-melodic/carrot_planner) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'clear_costmap_recovery' -- ==> add_subdirectory(navigation-melodic/clear_costmap_recovery) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'dwa_local_planner' -- ==> add_subdirectory(navigation-melodic/dwa_local_planner) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'move_slow_and_clear' -- ==> add_subdirectory(navigation-melodic/move_slow_and_clear) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Boost version: 1.65.1 -- Found the following Boost libraries: -- thread -- chrono -- system -- date_time -- atomic -- +++ processing catkin package: 'navfn' -- ==> add_subdirectory(navigation-melodic/navfn) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- navfn: 0 messages, 2 services -- NAVFN_HAVE_FLTK: , NETPBM: 1 -- FLTK orf NETPBM not found: cannot build navtest -- +++ processing catkin package: 'global_planner' -- ==> add_subdirectory(navigation-melodic/global_planner) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'rotate_recovery' -- ==> add_subdirectory(navigation-melodic/rotate_recovery) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'move_base' -- ==> add_subdirectory(navigation-melodic/move_base) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- +++ processing catkin package: 'teb_local_planner' -- ==> add_subdirectory(teb_local_planner-melodic) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- System: Linux-5.3.0-1030-raspi2 -- /opt/ros/melodic/share/cmake_modules/cmake/../../../share/cmake_modules/cmake/Modules;/home/EPRobot/robot_ws/src/teb_local_planner-melodic/cmake_modules -- Boost version: 1.65.1 -- Found the following Boost libraries: -- system -- thread -- graph -- chrono -- date_time -- atomic -- Found SuiteSparse -- Searching for g2o ... -- Found g2o headers in: /opt/ros/melodic/include/g2o -- Found libg2o: /opt/ros/melodic/lib/libg2o_csparse_extension.so;/opt/ros/melodic/lib/libg2o_core.so;/opt/ros/melodic/lib/libg2o_stuff.so;/opt/ros/melodic/lib/libg2o_types_slam2d.so;/opt/ros/melodic/lib/libg2o_types_slam3d.so;/opt/ros/melodic/lib/libg2o_solver_cholmod.so;/opt/ros/melodic/lib/libg2o_solver_pcg.so;/opt/ros/melodic/lib/libg2o_solver_csparse.so;/opt/ros/melodic/lib/libg2o_incremental.so -- teb_local_planner: 3 messages, 0 services -- +++ processing catkin package: 'eprobot_description' -- ==> add_subdirectory(eprobot_description) -- +++ processing catkin package: 'xf_mic_asr_offline' -- ==> add_subdirectory(xf_mic_asr_offline) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- xf_mic_asr_offline: 2 messages, 7 services -- +++ processing catkin package: 'ydlidar' -- ==> add_subdirectory(ydlidar) -- +++ processing catkin package: 'yocs_ar_pair_approach' -- ==> add_subdirectory(yujin_ocs/yocs_ar_pair_approach) -- +++ processing catkin package: 'yocs_cmd_vel_mux' -- ==> add_subdirectory(yujin_ocs/yocs_cmd_vel_mux) -- +++ processing catkin package: 'yocs_controllers' -- ==> add_subdirectory(yujin_ocs/yocs_controllers) -- +++ processing catkin package: 'yocs_keyop' -- ==> add_subdirectory(yujin_ocs/yocs_keyop) -- Could NOT find ecl_threads (missing: ecl_threads_DIR) -- Could not find the required component 'ecl_threads'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "ecl_threads" with any of the following names: ecl_threadsConfig.cmake ecl_threads-config.cmake Add the installation prefix of "ecl_threads" to CMAKE_PREFIX_PATH or set "ecl_threads_DIR" to a directory containing one of the above files. If "ecl_threads" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): yujin_ocs/yocs_keyop/CMakeLists.txt:3 (find_package) -- Configuring incomplete, errors occurred! See also "/home/EPRobot/robot_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/EPRobot/robot_ws/build/CMakeFiles/CMakeError.log". Makefile:9560: recipe for target 'cmake_check_build_system' failed make: *** [cmake_check_build_system] Error 1 Invoking "make cmake_check_build_system" failed EPRobot@EPRobot:~/robot_ws$ source devel/setup.bash # 在每次打开新终端时运行

最新推荐

recommend-type

学习一下二维码相关的,集成下 zxing.zip

学习一下二维码相关的,集成下 zxing.zip
recommend-type

生成二维码,可以带企业logo.zip

生成二维码,可以带企业logo.zip
recommend-type

帝国CMS7.5仿完美游戏台游戏视频网站模板下载.zip

本帝国cms模板由网络收集,整理升级为帝国CMS7.5,去除图片附件BUG和部分广告,已测试完美无错。 非常适合游戏视频网站使用,视频源采集的优酷,采集目标站以关闭,删除原火车头采集规则。 自带几万条测试数据,几百M测试图片,如何不需要可以到后台批量删除即可。
recommend-type

MATLAB中的Kolmogorov-Arnold网络_Kolmogorov-Arnold Networks in MA

MATLAB中的Kolmogorov-Arnold网络_Kolmogorov-Arnold Networks in MATLAB.zip
recommend-type

友得云客房产小程序是一款专为房产行业打造的开源的线上营销获客小程序,功能包括:一手房、二手房、租房房源发布、二维码海报、

友得云客房产小程序是一款专为房产行业打造的开源的线上营销获客小程序,功能包括:一手房、二手房、租房房源发布、二维码海报、置业顾问电子名片,适用于房产开发商、代理商、房产自媒体等行业,拥有众多成功案例。前端采用微信小程序原生开发,后端采用java开发,社区版全部开源免费,您可以在此基础上进行修改和扩展,以适应您自己的业务。本项目所用技术栈有:java_springboot、js_vue.zip
recommend-type

Hyperledger Fabric v2与Accord Project Cicero智能合约开发指南

标题和描述中提到的“hlf-cicero-contract:Accord Project Cicero与Hyperledger Fabric v2签约”以及“半西约合同”暗示了与智能合约和区块链技术相关的知识点。下面详细说明这些知识点: ### 智能合约与区块链技术 智能合约是一套运行在区块链上的程序,当合约条款被触发时,合约会自动执行相应的操作。这种自动执行的特点使得智能合约特别适合于执行多方之间的可信交易,它能减少或消除中介服务的需要,从而降低交易成本并提高效率。 区块链技术是一种分布式账本技术,通过加密算法和共识机制保证了交易数据的不可篡改性和透明性。区块链上的每一笔交易都会被网络中的多个节点验证并记录,确保了交易记录的安全性。 ### Hyperledger Fabric v2 Hyperledger Fabric 是由Linux基金会托管的一个开源项目,它是企业级区块链框架,旨在为商业应用提供安全、模块化、可扩展的区块链平台。Hyperledger Fabric v2.2是该框架的一个版本。 Hyperledger Fabric v2支持链码(Chaincode)概念,链码是部署在Hyperledger Fabric网络上的应用程序,它可以被用来实现各种智能合约逻辑。链码在运行时与网络中的背书节点和排序服务交互,负责验证、执行交易以及维护账本状态。 ### Accord Project Cicero Accord Project Cicero 是一个开源的智能合同模板和执行引擎,它允许开发者使用自然语言来定义合同条款,并将这些合同转换为可以在区块链上执行的智能合约。CiceroMark是基于Markdown格式的一种扩展,它允许在文档中嵌入智能合约逻辑。 通过Accord Project Cicero,可以创建出易于理解、可执行的智能合约。这些合同可以与Hyperledger Fabric集成,利用其提供的安全、透明的区块链网络环境,从而使得合同条款的执行更加可靠。 ### 智能合约的安装与部署 描述中提到了“安装”和“启动”的步骤,这意味着为了使用HLF v2.2和Accord Project Cicero,需要先进行一系列的配置和安装工作。这通常包括设置环境变量(例如HLF_INSTALL_DIR)、安装区块链网络(Test-Net)以及安装其他必需的软件工具(如jq)。 jq是一个轻量级且灵活的命令行JSON处理器,常用于处理JSON数据。在区块链项目中,jq可以帮助开发者处理链码或智能合约的数据,特别是在与网络节点交互时。 ### JavaScript 标签 标签“JavaScript”表明本项目或相关文档中会涉及到JavaScript编程语言。Hyperledger Fabric v2支持多种智能合约语言,其中JavaScript是一个广泛使用的选项。JavaScript在编写链码时提供了灵活的语法和强大的库支持,是进行区块链开发的一个流行选择。 ### 文件结构 文件名称列表“hlf-cicero-contract-master”暗示这是一个包含所有相关文件和资源的项目源代码目录。这个名称通常表明开发者可以从该目录开始探索、安装和配置项目的所有组件。 ### 综合知识点 1. 智能合约与区块链技术可以自动化执行多方面可信交易,降低交易成本并提高效率。 2. Hyperledger Fabric v2为企业提供一个安全、模块化、可扩展的区块链平台。 3. Accord Project Cicero结合Markdown格式的CiceroMark,将自然语言定义的合同条款转换为可执行的智能合约。 4. 智能合约的安装和部署涉及到一系列配置步骤,包括设置环境变量、安装必要的软件工具等。 5. JavaScript是编写智能合约的流行语言之一,为区块链开发提供灵活性和强大的库支持。 6. 项目文件结构表明从一个主目录可以探索和配置所有项目相关文件和资源。 以上是根据文件标题、描述、标签以及文件名称列表所提取的相关知识点。这些知识点对于理解Hyperledger Fabric v2和Accord Project Cicero在智能合约中的应用尤为重要。
recommend-type

深度神经网络优化技巧全解析

# 深度神经网络优化技巧全解析 ## 1 超越 Sigmoid 函数 在神经网络中,Sigmoid 函数曾被广泛使用,但它存在一些问题,如梯度消失。研究人员一直在寻找更好的激活函数,且不同的激活函数在不同场景下表现各异。 ### 1.1 ReLU 函数登场 如今,修正线性单元(ReLU)成为了 Sigmoid 的常用替代函数。与 Sigmoid 相比,ReLU 非常简单,以下是其 Python 实现: ```python def relu(z): if z <= 0: return 0 else: return z ``` ReLU 由两段直
recommend-type

什么是噪声功率密度

<think> 嗯,用户这次问的是噪声功率密度的定义,结合之前的系统指令和站内引用,需要给出清晰准确的中文解释。用户可能是电子工程或通信专业的学生,正在学习噪声相关的理论基础,也可能是工程师需要实际应用概念。从引用来[^1]看,用户对相位噪声的定义有基础认知,但需要系统梳理核心概念。 噪声功率密度最本质的定义应该是单位带宽内的噪声功率。引用[^2]提到电阻热噪声的例子很典型,50Ω电阻在300K环境下功率谱密度是定值(0.9nV/√Hz)²,这说明: 1. 它描述的是噪声功率随频率分布的密度 2. 与带宽强相关(带宽加倍则总功率加倍) 3. 单位通常用W/Hz或V²/Hz 维纳-辛钦定理(
recommend-type

Libshare: Salesforce的高效可重用模块集合

Salesforce是一个云基础的CRM平台,它允许用户构建定制应用程序来满足特定的业务需求。Apex是Salesforce平台上的一个强类型编程语言,用于开发复杂的业务逻辑,通过触发器、类和组件等实现。这些组件使得开发者可以更高效地构建应用程序和扩展Salesforce的功能。 在提到的"libshare:经过测试的Salesforce可重用模块"文件中,首先介绍了一个名为Libshare的工具包。这个工具包包含了一系列已经过测试的可重用模块,旨在简化和加速Salesforce应用程序的开发。 Libshare的各个组成部分的知识点如下: 1. 设置模块:在Salesforce应用程序中,应用程序设置的管理是必不可少的一部分。设置模块提供了一种简便的方式存储应用程序的设置,并提供了一个易用的API来与之交互。这样,开发者可以轻松地为不同的环境配置相同的设置,并且可以快速地访问和修改这些配置。 2. Fluent断言模块:断言是单元测试中的关键组成部分,它们用于验证代码在特定条件下是否表现预期。Fluent断言模块受到Java世界中Assertj的启发,提供了一种更流畅的方式来编写断言。通过这种断言方式,可以编写更易于阅读和维护的测试代码,提高开发效率和测试质量。 3. 秒表模块:在性能调优和效率测试中,记录方法的执行时间是常见的需求。秒表模块为开发者提供了一种方便的方式来记录总时间,并跟踪每种方法所花费的时间。这使得开发者能够识别瓶颈并优化代码性能。 4. JsonMapper模块:随着Web API的广泛应用,JSON数据格式在应用程序开发中扮演了重要角色。JsonMapper模块为开发者提供了一个更高级别的抽象,用于读取和创建JSON内容。这能够大幅简化与JSON数据交互的代码,并提高开发效率。 5. utils模块:在软件开发过程中,经常会遇到需要重复实现一些功能的情况,这些功能可能是通用的,例如日期处理、字符串操作等。utils模块提供了一系列已经编写好的实用工具函数,可以用于节省时间,避免重复劳动,提高开发效率。 6. 记录器模块:记录器通常用于记录应用程序的运行日志,以便于问题诊断和性能监控。系统提供的System.debug功能虽然强大,但在大型应用中,统一的记录器包装器可以使得日志管理更加高效。记录器模块支持记录器名称,并且可以对日志进行适当的封装。 7. App Logger模块:App Logger模块扩展了记录器模块的功能,它允许开发者将日志语句保存到一个精心设计的App Log对象中。此外,App Logger模块支持存储长达56k字符的日志内容,这对于复杂应用的监控和调试非常有用。 8. 应用程序任务模块:在处理异步作业时,例如批量数据处理或定时任务,需要有一个框架来管理和跟踪这些任务。应用程序任务模块提供了一个框架,用于处理可排队的作业,并能够跟踪这些任务的执行情况。 通过Libshare提供的这些模块,Salesforce的开发者能够减少开发工作量,加快开发速度,并提高代码质量。这些模块能够帮助开发者避免重复的“造轮子”工作,专注于核心业务逻辑的实现。同时,由于Libshare作为托管程序包发布,开发者无需担心代码的维护和管理,只需将其添加到自己的Salesforce组织中即可使用。 Libshare的发布也强调了可重用性的重要性,这是软件工程领域中长期提倡的一个原则。通过使用可重用的组件,开发者能够遵循DRY(Don't Repeat Yourself)原则,从而减少代码的冗余,提高生产效率,同时降低因重复编写相同代码而导致错误的风险。 总之,Libshare是一个有价值的资源,对于那些希望在Salesforce平台上快速构建高效、可靠应用程序的开发者来说,这些预置的、经过测试的模块无疑是一个强大的助手。
recommend-type

机器学习技术要点与应用解析

# 机器学习技术要点与应用解析 ## 1. 机器学习基础概念 ### 1.1 数据类型与表示 在编程中,数据类型起着关键作用。Python 具有动态类型特性,允许变量在运行时改变类型。常见的数据类型转换函数包括 `bool()`、`int()`、`str()` 等。例如,`bool()` 函数可将值转换为布尔类型,`int()` 用于将值转换为整数类型。数据类型还包括列表(`lists`)、字典(`dictionaries`)、元组(`tuples`)等集合类型,其中列表使用方括号 `[]` 表示,字典使用花括号 `{}` 表示,元组使用圆括号 `()` 表示。 ### 1.2 变量与命名