问题 仅仅通过设置页面(软件和更新),无论怎样设置,更换软件源的时候都会提示:下载软件仓库信息失败 检查您的网络连接 原因 ROS公钥更新导致用户命令sudo apt-get update报错 解决方案 进入ROS melodic 安装网站,运行1.2和1.3的代码即可(注意1.3是两句命令)
问题 安装ceres库(参见官网,具体的安装步骤在官网Linux标题下)报错:
-- Install configuration: "Release"
CMake Error at cmake_install.cmake:41 (file):
file cannot create directory: /usr/local/include/ceres. Maybe need
administrative privileges.
Makefile:128: recipe for target 'install' failed
make: *** [install] Error 1
原因 需要管理员权限 解决方案 安装命令改为 sudo make install
问题 多文件编译问题【未解决】,参考https://www.cnblogs.com/shadowfish/p/12059872.html 编译时报错:对"xxx"未定义的引用(undefined reference to xxx) 原因 VSCODE是一个文本编辑器,不是一个IDE,它不会自动链接项目通过头文件引用的.cpp文件。要解决这个问题,就要告诉编译器需要链接哪些文件。 解决方案 正在研究B站奥特学院的教程,看到P143和P144 https://www.bilibili.com/video/BV1Ci4y1L7ZZ?p=144&spm_id_from=pageDriver 里面讲到类似的操作了
1.在catkin_ws/src/功能包名/include/src/文件里面新建.h头文件
catkin_ws/.vscode/c_cpp_properties.json "includePath"里添加"/home/gwz/catkin_ws/src/功能包名/include/**"
如果要引用,就在(功能包名/src目录下的).cpp文件中添加
2.把(功能包名/CMakeLists.txt里的),大概在123行去掉
include_directories(
include
${catkin_INCLUDE_DIRS}
)
配置库
3.大概在124行,添加C++链接库
add_library(一个名字
include/${PROJECT_NAME}/欲调用的头文件名.h
src/欲调用的源文件名.cpp
)
4.大概在146行,添加依赖
add_dependencies(一个名字 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
5.接着下数三行,改这里
target_link_libraries(一个名字
${catkin_LIBRARIES}
)
接着配置可执行文件
6.大概在136行
add_executable(欲运行的源文件名 src/欲运行的源文件名.cpp)
7.大概在147行(就是第4步的下一行)
add_dependencies(欲运行的源文件名 ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
8.大概在153行(就是第5步的下面)
target_link_libraries(欲运行的源文件名
一个名字
${catkin_LIBRARIES}
)
再编译即可
|