【问题标题】:How to add successfully pcl library to a qt project with qmake如何使用 qmake 将 pcl 库成功添加到 qt 项目中
【发布时间】:2019-05-31 08:59:30
【问题描述】:

我正在尝试使用 qmake 将 pcl 库包含到我的 qt 应用程序项目中。我发现了一些类似的问题,但没有一个答案有助于解决我的问题。

我尝试将来自 pcl lib 的路径以及 pcl 使用的 3rd 方库添加到 .pro 文件中。这是我的 .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""X' with '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' with '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:错误:无法找到字符串文字运算符 'operator""X' with 'const char [2]', 'long long unsigned int' 参数 EIGEN_ASM_COMMENT("mybegin4");

你能帮我解决这个问题吗?

【问题讨论】:

    标签: c++ qt qmake point-cloud-library


    【解决方案1】:

    我建议使用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)
    

    希望对你有所帮助。

    【讨论】:

    • 非常感谢您的信息。但是,我想导入 - 使用 qmake 配置 pcl,因为我现有的应用程序正在使用 qmake。你知道如果有办法做到这一点吗?
    • 使用您当前的配置,尝试使用 c++03 构建,而不是使用 c++11 或更高版本。
    • 不幸的是,我得到了同样的错误...感谢支持
    • 不客气。我认为还有另一种方法可以解决您的问题,但有点困难。尝试找到名为EIGEN_ASM_COMMENTMacro 的定义,并在产生问题的X 之前添加一个空格。告诉我是否有变化。
    • 抱歉回复晚了,我试着找到这个宏并进行建议的修改
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多