Closed bibatn closed 1 year ago
перешел на версию 1.9.1 flannа: HEAD detached at 1.9.1
При сборке выходит ошибка:
CMake Error at src/cpp/CMakeLists.txt:32 (add_library):
No SOURCES given to target: flann_cpp
CMake Error at src/cpp/CMakeLists.txt:86 (add_library):
No SOURCES given to target: flann
Решение в следующем:
In your flann dir run
touch src/cpp/empty.cpp
In src/cpp/CMakeLists.txt replace
add_library(flann_cpp SHARED "") and add_library(flann SHARED "")
with
add_library(flann_cpp SHARED empty.cpp) and add_library(flann SHARED empty.cpp)
git checkout pcl-1.12.1
export EIGEN_ROOT=/home/m/Documents/CUSTOM_PCL/eigen/build
git clone https://github.com/fsquillace/junest.git ~/.local/share/junest export PATH=~/.local/share/junest/bin:$PATH export PATH="$PATH:~/.junest/usr/bin_wrappers"
Пакет eigen
файл Eigen3Config.cmake:
PACKAGE_PREFIX_DIR
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
Местоположение директория usr
!!! сделал checkout на tag 3.3.7 set (EIGEN3_VERSION_STRING "3.3.7")
Про комманду find_path https://cmake.org/cmake/help/latest/command/find_path.html
FindEigen.cmake Где выставляется переменная PROGRAMFILES?
/usr/include/eigen3/Eigen :point_up: тут лежат файлы для подключения.
изменены строчки 28 29
set (EIGEN3_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include/eigen3")
set (EIGEN3_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include/eigen3")
на путь где лежит папка Eigen
Возможно потребуется поменять строчку set (EIGEN3_ROOT_DIR "${PACKAGE_PREFIX_DIR}") а также переменную PACKAGE_PREFIX_DIR если она где-то используется
CMAKE_MODULE_PATH переменная cmake https://cmake.org/cmake/help/latest/variable/CMAKE_MODULE_PATH.html
Поменял 304 строку файла CmakeLists.txt пакета PCL
find_package(Eigen 3.1 REQUIRED PATHS /home/m/Documents/CUSTOM_PCL/eigen/build)
305 строка под вопросом
внес правку в строку Eigen -> Eigen3 find_package(Eigen3 3.1 REQUIRED PATHS /home/m/Documents/CUSTOM_PCL/eigen/build)
Поменял название файла Eigen3Config.cmake на EigenConfig.cmake вернул строку find_package(Eigen 3.1 REQUIRED PATHS /home/m/Documents/CUSTOM_PCL/eigen/build)
Заменил 32 строку в файле FindEigen.cmake set(EIGEN_INCLUDE_DIRS /home/m/Documents/CUSTOM_PCL/eigen/Eigen)
Этап с FLANN
export CMAKE_PREFIX_PATH=/home/m/Documents/CUSTOM_PCL/flann/build/cmake
export PKG_CONFIG_PATH=/home/m/Documents/CUSTOM_PCL/flann/build/cmake
:point_up: Модуль Flann подтягивается двумя основными командами: find_path(FLANN_INCLUDE_DIR NAMES flann/flann.hpp HINTS ${PC_FLANN_INCLUDE_DIRS} ${FLANN_ROOT} $ENV{FLANN_ROOT} PATHS $ENV{PROGRAMFILES}/Flann $ENV{PROGRAMW6432}/Flann PATH_SUFFIXES include ) message(STATUS "marat ${FLANN_INCLUDE_DIR}")
find_library(FLANN_LIBRARY_SHARED NAMES flann_cpp HINTS ${PC_FLANN_LIBRARY_DIRS} ${FLANN_ROOT} $ENV{FLANN_ROOT} PATHS $ENV{PROGRAMFILES}/Flann $ENV{PROGRAMW6432}/Flann PATH_SUFFIXES lib )
Рабочие комманды :point_down: : find_path(FLANN_INCLUDE_DIR NAMES flann/flann.hpp PATHS /home/m/Documents/CUSTOM_PCL/flann/src/cpp NO_DEFAULT_PATH ) message(STATUS "marat ${FLANN_INCLUDE_DIR}")
find_library(FLANN_LIBRARY_SHARED NAMES flann_cpp PATHS /home/m/Documents/CUSTOM_PCL/flann/build/lib PATH_SUFFIXES lib NO_DEFAULT_PATH )
Замена для Eigen: find_path(EIGEN_INCLUDE_DIR Eigen/Core PATHS /home/m/Documents/CUSTOM_PCL/eigen NO_DEFAULT_PATH ) message(STATUS "marat ${EIGEN_INCLUDE_DIR}")
BOOST :point_down:
Минимальная приемлемая версия boost - 1.65. Какая версия стоит на POLUS? Ответ: 1.53 /usr/include/boost
git clone --recursive git@github.com:boostorg/boost.git
--with-libraries=list build only a particular set of libraries, describing using either a comma-separated list of library names or "all"
More precise control over installation directories: --libdir=DIR install libraries here [EPREFIX/lib] --includedir=DIR install headers here [PREFIX/include]
/bootstrap.sh --with-libraries=serialization, mpi, filesystem, date_time, iostreams, system --libdir=/home/m/Documents/CUSTOM_PCL/boost/build/lib --includedir=/home/m/Documents/CUSTOM_PCL/boost/build/include
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/home/m/Documents/CUSTOM_PCL/boost
The following directory should be added to linker library paths:
/home/m/Documents/CUSTOM_PCL/boost/stage/lib
git clone -b boost-1.71.0 --recursive [git@github.com:boostorg/boost.git](https://github.com/boostorg/boost.git)
/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/CMake/bin/cmake
Замена для Eigen: find_path(EIGEN_INCLUDE_DIR Eigen/Core PATHS /home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/eigen NO_DEFAULT_PATH ) message(STATUS "marat ${EIGEN_INCLUDE_DIR}")
find_path(FLANN_INCLUDE_DIR NAMES flann/flann.hpp PATHS /home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/flann/src/cpp NO_DEFAULT_PATH ) message(STATUS "marat ${FLANN_INCLUDE_DIR}")
find_library(FLANN_LIBRARY_SHARED NAMES flann_cpp PATHS /home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/flann/build/lib PATH_SUFFIXES lib NO_DEFAULT_PATH )
The following directory should be added to compiler include paths:
/polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost
The following directory should be added to linker library paths:
/polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/stage/lib
`find_path(Boost_INCLUDE_DIR NAMES serialization/access.hpp PATHS /home/m/Documents/CUSTOM_PCL/boost/boost NO_DEFAULT_PATH ) message(STATUS "marat ${Boost_INCLUDE_DIR}")
find_library(Boost_LIBRARY_SHARED NAMES boost_atomic PATHS /home/m/Documents/CUSTOM_PCL/boost/stage/lib PATH_SUFFIXES lib NO_DEFAULT_PATH )
find_library(Boost_LIBRARY_STATIC NAMES boost_atomic PATHS /home/m/Documents/CUSTOM_PCL/boost/stage/lib PATH_SUFFIXES lib NO_DEFAULT_PATH )
message(STATUS "marat1 ${Boost_INCLUDE_DIR}") message(STATUS "marat1 ${Boost_LIBRARY_SHARED}") message(STATUS "marat1 ${Boost_LIBRARY_STATIC}")`
`find_path(Boost_INCLUDE_DIR NAMES serialization/access.hpp PATHS /home/m/Documents/CUSTOM_PCL/boost/boost NO_DEFAULT_PATH ) message(STATUS "marat ${Boost_INCLUDE_DIR}")
find_library(Boost_LIBRARY_SHARED NAMES boost_atomic PATHS /home/m/Documents/CUSTOM_PCL/boost/stage/lib PATH_SUFFIXES lib NO_DEFAULT_PATH )
find_library(Boost_LIBRARY_STATIC NAMES boost_atomic PATHS /home/m/Documents/CUSTOM_PCL/boost/stage/lib PATH_SUFFIXES lib NO_DEFAULT_PATH ) `
find_package(Boost 1.65.0 QUIET COMPONENTS serialization mpi PATHS /home/m/Documents/CUSTOM_PCL/boost/tools/boost_install) if(Boost_SERIALIZATION_FOUND) set(BOOST_SERIALIZATION_FOUND TRUE) endif()
message(STATUS "marat1 ${Boost_INCLUDE_DIR}")
set(BOOST_REQUIRED_MODULES filesystem date_time iostreams system) find_package(Boost 1.65.0 REQUIRED COMPONENTS ${BOOST_REQUIRED_MODULES} PATHS /home/m/Documents/CUSTOM_PCL/boost/tools/boost_install)
find_path(Boost_INCLUDE_DIR NAMES iostreams/detail/iostream.hpp date_time.hpp filesystem.hpp system/config.hpp PATHS /polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/boost NO_DEFAULT_PATH ) message(STATUS "marat ${Boost_INCLUDE_DIR}")
find_library(Boost_LIBRARY_SHARED NAMES filesystem date_time iostreams system PATHS /polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/stage/lib PATH_SUFFIXES libboost NO_DEFAULT_PATH )
./bootstrap.sh --libdir=/home/m/projects/code_from_source/boost/build/lib --includedir=/home/m/projects/code_from_source/boost/build/include
./bootstrap.sh --libdir=/home/m/Documents/CUSTOM_PCL/boost/build/lib --includedir=/home/m/Documents/CUSTOM_PCL/boost/build/include
./bootstrap.sh --libdir=/polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/build/lib --includedir=/polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/build/include
:point_up: ./b2 install
message(STATUS "marat: ${BOOST_INCLUDE_DIR}") message(STATUS "marat: ${Boost_LIBRARY_DIR_RELEASE}") message(STATUS "marat: ${Boost_filesystem_LIBRARY_RELEASE}")
PATHS /polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/boost /polusfs/home_edu/edu-cmc-sqi19/edu-cmc-sqi19-24/PCL/boost/stage/lib
message(STATUS "marat1 ${Boost_FOUND}") message(STATUS "marat1 ${Boost_INCLUDE_DIRS}") message(STATUS "marat1 ${Boost_LIBRARY_DIRS}") message(STATUS "marat1 ${Boost_LIBRARIES}") message(STATUS "marat1 ${Boost_FILESYSTEM_LIBRARY}") message(STATUS "marat1 ${Boost_DATE_TIME_LIBRARY}") message(STATUS "marat1 ${Boost_IOSTREAMS_LIBRARY}") message(STATUS "marat1 ${Boost_SYSTEM_LIBRARY}") message(STATUS "marat1 ${Boost_VERSION_MACRO}") message(STATUS "marat1 ${Boost_VERSION_STRING}") message(STATUS "marat1 ${Boost_VERSION}") message(STATUS "marat1 ${Boost_LIB_VERSION}")
Boost-1.71.0
199711L | C++98 |
---|---|
201103L | C++11 |
201402L | C++14 |
pcl-1.9.1
Склонирован проект: https://github.com/Kitware/CMake
./bootstrap
make