Как я могу использовать несколько исходных файлов библиотеки облаков точек с CMAKE в Visual Studio 2013? - PullRequest
0 голосов
/ 29 мая 2018

Я работаю над проектом " Роботизированная 3D регистрация ", в котором используется робот UR5 и 3D-сканер на руке робота, чтобы получить облака точек обзора с несколькими точками зрения неизвестногообъекты и восстанавливаем его с регистрацией ICP .

Я пытаюсь создать визуальный студийный проект и вот мое окружение

Cmake 3.8.0-rc1

Visual studio 2013

библиотека облаков точек 1.8.0

Windows 10

Я завершил установку и компиляцию pcl с использованием исходного кода с помощью https://www.youtube.com/watch?v=0adzJy4-KZg&t=3s

И я закончил несколько уроков по pcl, следуя http://pointclouds.org/documentation/tutorials/

Но в этих руководствах используется только один исходный файл (.cpp) и один исполняемый файл ..

Для моего проекта Мне нужно собрать несколько исходных файлов иэто вопрос.

Я хочу сделать проект с исходными файлами в pcl, как показано ниже.

xyz2pcd.cpp (для преобразования типа данных облака точек)

static_removal.cpp (для устранения выбросов)

moment_of_inertia.cpp (для генерации AABB или OBB)

pairwise_incremental_registration.cpp (для регистрации облаков с несколькими точками обзора)

robot_control.cpp (для связи и управления роботом)

sensor_control.cpp (для связи и управления датчиком)

и основного исполняемого исходного файла, такого как main.cpp

Пока я изучал, я думаю, кромеmain.cpp, все исходные файлы должны быть собраны в виде библиотеки с помощью команды add_library в CMakeLists, чтобы я мог использовать функции из исходного файла в.Кроме того, в main.cpp, я хочу сделать несколько потоков для управления, и отдельно.

Итак, я сделал CMakeLists как это ..

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

# creat project
project(Project)

# find package
find_package(PCL 1.2 REQUIRED)

set(SYS_NAME project_test)
set(LIB_NAME "pcl_${SYS_NAME}")

include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})

set(srcs
     src/tools/xyz2pcd.cpp
     src/outlier/statistical_removal.cpp
     src/exploration/moment_of_inertia.cpp
     src/registration/pairwise_incremental_registration.cpp
     src/viewer/cloud_viewer.cpp
    )

set(incs 
     include/pcl/${SYS_NAME}/cloud_viewer.h
     include/pcl/${SYS_NAME}/filter.h
     include/pcl/${SYS_NAME}/icp.h
     include/pcl/${SYS_NAME}/icp_nl.h
     include/pcl/${SYS_NAME}/io.h
     include/pcl/${SYS_NAME}/moment_of_inertia_estimation.h
     include/pcl/${SYS_NAME}/normal_3d.h
     include/pcl/${SYS_NAME}/parse.h
     include/pcl/${SYS_NAME}/pcd_io.h
     include/pcl/${SYS_NAME}/pcl_visualizer.h
     include/pcl/${SYS_NAME}/point_cloud.h
     include/pcl/${SYS_NAME}/point_representation.h
     include/pcl/${SYS_NAME}/point_types.h
     include/pcl/${SYS_NAME}/print.h
     include/pcl/${SYS_NAME}/statistical_outlier_removal.h
     include/pcl/${SYS_NAME}/time.h
     include/pcl/${SYS_NAME}/transforms.h
     include/pcl/${SYS_NAME}/voxel_grid.h
    )

set(impl_incs 
     include/pcl/${SYS_NAME}/thread.hpp
     include/pcl/${SYS_NAME}/make_shared.hpp
    )

add_library(${LIB_NAME} STATIC ${srcs} ${incs} ${impl_incs})

add_executable (${SYS_NAME} project_test.cpp)
target_link_libraries (project_test ${PCL_LIBRARIES})

В CMakeLists исходные файлыто же самое с ними в учебниках на сайте pcl. Но я не знаю, как их использовать в project_test.cpp (= main.cpp). Должен ли я сделать еще один файл для прослушивания исходных файлов? Если тогда, как я могу это сделать?связать или собрать их с какой командой в CMake?

Я новичок в CMAKE, Visual Studio, PCL, поэтому я хочу знать веб-сайт руководства или материалы по ним ..

Извините замои английские и сбивающие с толку слова.

...