Как успешно добавить библиотеку pcl в проект qt с помощью qmake - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь включить библиотеку pcl в мой проект приложения qt, используя qmake.Я нашел несколько похожих вопросов, однако ни один из ответов не помог решить мою проблему.

Я попытался добавить в файл .pro пути из pcl lib, а также сторонние библиотеки, которые используются pcl,Вот строки включения моего .pro-файла.

win32:CONFIG(release, debug|release): LIBS += -LD:/Libraries/PCL_1.6.0/lib
win32:CONFIG(release, debug|release): LIBS += -LD:/Libraries/PCL_1.6.0/3rdParty/Eigen/bin
win32:CONFIG(release, debug|release): LIBS += -LD:/Libraries/PCL_1.6.0/3rdParty/Boost/lib

INCLUDEPATH +=  D:/Libraries/PCL_1.6.0/include/pcl-1.6
DEPENDPATH += D:/Libraries/PCL_1.6.0/include/pcl-1.6

INCLUDEPATH +=  D:/Libraries/PCL_1.6.0/3rdParty/Eigen/include
DEPENDPATH += D:/Libraries/PCL_1.6.0/3rdParty/Eigen/include

INCLUDEPATH +=  D:/Libraries/PCL_1.6.0/3rdParty/Boost/include
DEPENDPATH += D:/Libraries/PCL_1.6.0/3rdParty/Boost/include

После этого я просто пытаюсь поместить это включение в один из моих файлов:

include pcl/io/pcd_io.h

И это ошибкия возвращаюсь:

D: \ Libraries \ PCL_1.6.0 \ 3rdParty \ Eigen \ include \ Eigen \ src \ Core \ products \ GeneralBlockPanelKernel.h: 604: ошибка: невозможно найти строковый литералoperator 'operator "" X "с аргументами" const char [2] "," long long unsigned int "EIGEN_ASM_COMMENT (" mybegin2 ");

D: \ Libraries \ PCL_1.6.0 \ 3rdParty \ Eigen \ include\ Eigen \ src \ Core \ products \ GeneralBlockPanelKernel.h: 640: ошибка: невозможно найти строковый литерал оператора 'operator', 'X' с аргументами 'const char [2]', 'long long unsigned int' EIGEN_ASM_COMMENT ("myend");

D: \ Libraries \ PCL_1.6.0 \ 3rdParty \ Eigen \ include \ Eigen \ src \ Core \ products \ GeneralBlockPanelKernel.h: 644: ошибка: невозможно найти оператор оператора строкового литерала "" Xаргументы 'with' const char [2] ',' long long unsigned int 'EIGEN_ASM_COMMENT ("mybegin4");

Не могли бы вы помочь мне решить проблему?

1 Ответ

2 голосов
/ 31 мая 2019

Предлагаю использовать CMake. Смотрите ссылки ниже:

CMakeList.txt выглядит следующим образом:

cmake_minimum_required(VERSION 2.8.11)

project(pcl_visualizer)

# init_qt: Let's do the CMake job for us
set(CMAKE_AUTOMOC ON) # For meta object compiler
set(CMAKE_AUTORCC ON) # Resource files
set(CMAKE_AUTOUIC ON) # UI files

# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# Find the QtWidgets library
find_package(Qt5 REQUIRED Widgets)

find_package(VTK REQUIRED)
find_package(PCL 1.7.1 REQUIRED)

# Fix a compilation bug under ubuntu 16.04 (Xenial)
list(REMOVE_ITEM PCL_LIBRARIES "vtkproj4")

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

set(project_SOURCES main.cpp pclviewer.cpp)

add_executable(${PROJECT_NAME} ${project_SOURCES})

target_link_libraries(${PROJECT_NAME} ${PCL_LIBRARIES} Qt5::Widgets)

Надеюсь, это поможет вам.

...