Объединение двух файлов CMakeLists.txt (ROS и Libtorch) - PullRequest
1 голос
/ 26 апреля 2020

Я пытаюсь объединить два файла CMakeLists.txt для компиляции программы на C ++, которая имеет зависимости как ROS, так и Libtorch. Ниже приведены отдельные файлы:

Файл Libtorch CMakeLists.txt:

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(example-app)

find_package(Torch REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")

add_executable(example-app example-app.cpp)
target_link_libraries(example-app "${TORCH_LIBRARIES}")
set_property(TARGET example-app PROPERTY CXX_STANDARD 14)

# The following code block is suggested to be used on Windows.
# According to https://github.com/pytorch/pytorch/issues/25457,
# the DLLs need to be copied to avoid memory errors.
if (MSVC)
  file(GLOB TORCH_DLLS "${TORCH_INSTALL_PREFIX}/lib/*.dll")
  add_custom_command(TARGET example-app
                     POST_BUILD
                     COMMAND ${CMAKE_COMMAND} -E copy_if_different
                     ${TORCH_DLLS}
                     $<TARGET_FILE_DIR:example-app>)
endif (MSVC)

Я нашел это здесь: https://pytorch.org/cppdocs/installing.html

ROS CMakeListis Файл .txt:

cmake_minimum_required(VERSION 2.8.3)
project(fly_bot_cpp)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  geometry_msgs
  tf
  gazebo_msgs
)

include_directories(
 include
  ${catkin_INCLUDE_DIRS}
  ${Boost_INCLUDE_DIRS}
)

add_executable(example src/example.cpp)
target_link_libraries(example ${catkin_LIBRARIES})

В примере программы-приложения. cpp имеются библиотеки ROS и LibTorch.

Итак, вот что я пытался сделать:

cmake_minimum_required(VERSION 2.8.3)
project(fly_bot_cpp)

set(CMAKE_PREFIX_PATH="home/jarvis/libtorch;/opt/ros/melodic")

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
  geometry_msgs
  tf
  rospy
  message_generation
)

find_package(Torch REQUIRED)

include_directories(
 include
  ${catkin_INCLUDE_DIRS}
  ${Boost_INCLUDE_DIRS}
)

add_executable(test_quad src/test_quad.cpp)
target_link_libraries(test_quad ${catkin_LIBRARIES} "${TORCH_LIBRARIES}")

set_property(TARGET test_quad PROPERTY CXX_STANDARD 14)

Код test_quad. cpp (ранее назывался example-app. cpp), содержит заголовочные файлы ros и torch Заголовочные файлы:

#include "ros/ros.h"
#include <torch/torch.h>
.
.
.

Тем не менее, я получаю следующую ошибку.

fatal error: torch/torch.h: No such file or directory
 #include <torch/torch.h>
          ^~~~~~~~~~~~~~~
compilation terminated.

Может кто-нибудь, пожалуйста, помогите мне ??

Спасибо большое.

...