Error: undefined reference to `ros::init(int&, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'

asked 2022-07-01 02:56:52 -0500

Shantanu gravatar image

I am facing a reference issue while building using the CMakeList.txt file.

cmake_minimum_required(VERSION 3.5.0)
set(CMAKE_CXX_STANDARD 11)
project(conti_radar)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)
find_package(Protobuf REQUIRED)
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES conti_radar
#  CATKIN_DEPENDS roscpp std_msgs
#  DEPENDS system_lib
)
include_directories(
# include
  ${catkin_INCLUDE_DIRS}
)

set(PDK_INTERFACE_LIB "/opt/pdk/lib/libpdk_interface.so")
set(PDK_IMPORT_DIR "/opt/pdk/include")
set(PROTOBUF_FILE_LIST
  ${PDK_IMPORT_DIR}/pdk/pdk_MsgHeader.proto
  ${PDK_IMPORT_DIR}/pdk/pdk_SensorMsgHeader.proto
  ${PDK_IMPORT_DIR}/pdk/pdk_RadarDetectionImage.proto
  ${PDK_IMPORT_DIR}/pdk/pdk_RadarStatus.proto
  ${PDK_IMPORT_DIR}/pdk/pdk_RadarObjectList.proto
)
protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS ${PROTOBUF_FILE_LIST})
add_executable(radar 
    /home/radar/catkin_radar/src/conti_radar/src/radar.cpp
    ${PROTO_SRCS}
    )
target_include_directories(radar 
    PRIVATE ${CMAKE_CURRENT_BINARY_DIR} 
    PRIVATE ${PDK_IMPORT_DIR}
    )
target_link_libraries(radar 
    PRIVATE ${PDK_INTERFACE_LIB}
    PRIVATE protobuf::libprotobuf
    )

Kindly help in resolving this issue.

edit retag flag offensive close merge delete