【问题标题】:How do you add external libraries to 'self-made' libraries using CMake?如何使用 CMake 将外部库添加到“自制”库中?
【发布时间】:2021-05-22 22:52:03
【问题描述】:

我无法将外部库与我使用 CMake 编写的库链接。我想知道是否需要将某些内容添加到我的CMakeLists.txt 中?或者,如果我需要在较低级别(src 内)添加另一个 CMakeLists.txt,那需要包含什么?

我的项目结构如下:

ProjectFolder
│   ├── CMakeLists.txt
│   ├── build
│   │   └── 
│   ├── include
│   │   └── helper.h
│   └── src
│       ├── helper.cpp
        └── main.cpp

我的CMakeList.txt 是:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)

project(object_detection)

find_package(PCL 1.5 REQUIRED)
find_package(OpenCV REQUIRED)


file(GLOB SOURCES src/*.cpp)
file(GLOB INCLUDE include/*.h)

include_directories(${PCL_INCLUDE_DIRS} ${INCLUDE})
link_directories(${PROJECT_NAME} ${PCL_LIBRARY_DIRS} ${SOURCES} )
add_definitions(${PCL_DEFINITIONS})


add_executable (${PROJECT_NAME} src/main.cpp)
target_link_libraries (${PROJECT_NAME}  ${OpenCV_LIBS} ${PCL_LIBRARIES} ${SOURCES})

在我的文件helper.cpp 我有:

#include <pcl/io/pcd_io.h>

这给出了错误:

fatal error: 'pcl/io/pcd_io.h' file not found
#include <pcl/io/pcd_io.h>
         ^~~~~~~~~~~~~~~~~

但是我在 main.cpp 中包含相同的内容,没有错误。

我将非常感谢任何帮助,如果我需要澄清我的问题或错误,请告诉我。 谢谢。

【问题讨论】:

    标签: c++ cmake include file-not-found cmakelists-options


    【解决方案1】:

    CMakeLists.txt 中有几个错误,以下更改项目加载适当的库并正确构建。另一个注意事项是,在包含helper.h 之前,我需要写: #include "../include/helper.h".
    现在它可以与#include "helper.h" 一起正常工作。 这是修改后的 CMakeLists.txt:

    cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
    
    project(object_detection)
    
    find_package(PCL 1.5 REQUIRED)
    find_package(OpenCV REQUIRED)
    
    
    file(GLOB SRC_FILES ${PROJECT_SOURCE_DIR}/src/*.cpp)
    
    
    include_directories(${PCL_INCLUDE_DIRS} include)
    link_directories(${PROJECT_NAME} ${PCL_LIBRARY_DIRS})
    add_definitions(${PCL_DEFINITIONS})
    
    
    #add_executable (${PROJECT_NAME} src/helper.cpp src/main.cpp )
    add_executable (${PROJECT_NAME} ${SRC_FILES} )
    
    target_link_libraries (object_detection ${PCL_LIBRARIES} ${OpenCV_LIBS})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多