我是C和C ++的新手。
我有一个程序。它具有以下包含语句:
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <librealsense>
#include <librealsense2/rs.hpp>
据我了解,C ++编译器在许多不同的位置寻找这些文件的减速度。使用命令
`gcc -print-prog-name=cc1plus` -v
我发现这些位置之一是/ usr / local / include。 该目录中有一个librealsense目录,一个librealsense2目录和glfw目录。很好。
但是无论出于什么原因,当我尝试使用cmake制作文件时,都找不到librealsense目录。为什么是这样?似乎在正确的位置。
另一个问题是,我是否必须在CMakeLists.txt文件中提及它?
我的CmakeLists.txt文件如下:
cmake_minimum_required(VERSION 3.10)
project (YES)
include_directories(${glfw_INCLUDE_DIRS} "${YES_SOURCE_DIR}/deps")
set(GLAD "${YES_SOURCE_DIR}/deps/glad/glad.h"
"${YES_SOURCE_DIR}/deps/glad.c")
add_executable(yes main.cpp ${GLAD})
target_link_libraries(yes glfw)
target_link_libraries(yes librealsense)
target_link_libraries(yes librealsense2)
但是最后两行出现错误:
/usr/bin/x86_64-linux-gnu-ld: cannot find -llibrealsense
/usr/bin/x86_64-linux-gnu-ld: cannot find -llibrealsense2
Cmake是否位于不同的位置?为了尝试纠正此问题,我决定使用以下内容:
find_library(librealsense NAMES librealsense PATHS /usr/local/include)
find_library(librealsense2 NAMES librealsense2 PATHS /usr/local/include)
但是,很难找到find_library命令的指南。通过阅读文档,我知道如果在该路径下找到库,它们将存储在第一个参数中。但是,如何将其链接到我要创建的实际程序?我尝试过:
add_executable(yes main.cpp librealsense librealsense2 ${GLAD})
但是它说找不到librealsense源文件。因此,该方法仅适用于源文件(?),而不适用于变量(?)
对所有问题深表歉意,但如果有专家可以回答所有问题,我将不胜感激:]