11小白学习,大神勿喷!
1 固定库指定
set(LCM_DIR ${PROJECT_SOURCE_DIR}/include/lcmtype_dir)
set(LCMLAB_DIR ${PROJECT_SOURCE_DIR}/include/lcmlib)
include_directories(
${LCM_DIR}
${LCMLAB_DIR}
)
2 自己cpp文件为库文件
add_library(lcm_server
src/GPSConversion.cpp
include/lcmtype_dir/laser_t.cpp
include/lcmtype_dir/pose_t.cpp
include/lcmtype_dir/robot_control_t.cpp
)
target_link_libraries(lcm_send
lcm_server lcm pthread
)
lcm_server 链接到自己的库上
ros opencv3 路径指定
set(OpenCV_DIR /opt/ros/kinetic/share/OpenCV-3.3.1-dev)
# find_package(OpenCV 3 REQUIRED)
设置为固定路径,代替find_package
下面链接opencv库是一样的
include_directories( ${OpenCV_INCLUDE_DIRS})
#
target_link_libraries(${PROJECT_NAME}
${OpenCV_LIBRARIES}
)
错误: No rule to make target ‘/opt/ros/kinetic/lib/liborocos-kdl.so.1.3.0’
查看自己的安装库下有
zlt@Inspiron:~/rosproject/autolabor$ locate liborocos-kdl
/opt/ros/kinetic/lib/liborocos-kdl.so
/opt/ros/kinetic/lib/liborocos-kdl.so.1.3
/opt/ros/kinetic/lib/liborocos-kdl.so.1.3.2
创建软连接的方式
cd /opt/ros/kinetic/lib/
sudo ln -s /opt/ros/kinetic/lib/liborocos-kdl.so.1.3 /opt/ros/kinetic/lib/liborocos-kdl.so.1.3.0
错误 undefined reference to symbol ‘pthread_mutexattr_settype@@GLIBC_2.2.5’
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
错误 undefined reference to `pcl::search::Searchpcl::PointXYZI::getNameabi:cxx11 const’
点云库没有链接
find_package(PCL 1.7 REQUIRED)
target_link_libraries(multi_lidar_calibrator_lib
${catkin_LIBRARIES} ${PCL_LIBRARIES}
)
# 配合添加头文件
#include <pcl/search/impl/search.hpp>
升级CMKAE
sudo pip install --upgrade cmake==3.13.2
更换gcc版本
sudo apt install gcc-4.9 g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
update-alternatives --list gcc
update-alternatives --set gcc /usr/bin/gcc-4.9
打印变量值在这里插入代码片
MESSAGE( STATUS “this var key = ${USER_KEY}.”)
eigen3 使用 自己源码安装路径
/usr/local/include/eigen3/
头文件找不到
注意使用时候的
#include “ your.h”
Cmakelist 中
include_directories(
方法一: # include
方法二: ${CMAKE_CURRENT_SOURCE_DIR}/include/
)
/usr/bin/ld: cannot find -lgfortran
gcc 版本不对。gcc7 换到gcc5so
x86_64
if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" AND NOT APPLE)
add_definitions(-fPIC)
endif()