CMakeTextFile.txt用于Librealsense(旧版)和GLFW3

时间:2018-09-04 10:56:31

标签: c++ cmake

我想为r200相机制作一个小型应用程序。它使用C ++,并且需要使用librealsense库以及glfw3库。

以前,我试图使用类似以下的命令通过命令行来编译该程序:

g++ -std=c++11 pointcloud.cpp `pkg-config --cflags glfw3` -lrealsense -lopencv_core -lopencv_imgproc -lopencv_highgui -o ir `pkg-config --static --libs glfw3` && ./ir

但是,不幸的是,这个方法不起作用(由于找不到glfw3方法,它仍然失败了)。而且,如果我移除了--static标签,则会收到此错误:

  

/ usr / bin / x86_64-linux-gnu-ld:   /usr/local/lib/libglfw3.a(posix_thread.c.o):未定义的引用   符号'pthread_key_delete @@ GLIBC_2.2.5'   //lib/x86_64-linux-gnu/libpthread.so.0:添加符号时出错:DSO   命令行collect2中缺少:错误:ld返回1退出状态

但是,所有建议的方法似乎都不适合我。

因此,我决定尝试制作一个CMakeLists.txt文件来解决此问题。我目前拥有的是:

cmake_minimum_required(VERSION 3.10)
project(main)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "-pthread")

find_package(OpenGL REQUIRED)
find_package(OpenCV REQUIRED)
include_directories(${OPENGL_INCLUDE_DIR})
include_directories(${OpenCV_INCLUDE_DIRS})

add_subdirectory(librealsense)
add_executable(main pointcloud.cpp librealsense/examples/example.hpp)
target_link_libraries(main ${OpenCV_LIBS})
target_link_libraries(main ${OPENGL_gl_LIBRARY})
target_link_libraries(main realsense2)

但是,这不起作用,不幸的是,自从构建librealsense模块以来,大约需要半小时的时间。我希望有这样的东西:

cmake_minimum_required(VERSION 3.10)
project(main)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS " -pthread ")

find_package(OpenGL REQUIRED)
find_package(OpenCV REQUIRED)
find_package(librealsense REQUIRED)

include_directories(${OPENGL_INCLUDE_DIR})
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${librealsense_INCLUDE_DIRS})

add_executable(main pointcloud.cpp librealsense/examples/example.hpp)

target_link_libraries(main ${OpenCV_LIBS})
target_link_libraries(main ${OPENGL_gl_LIBRARY})
target_link_libraries(main ${librealsense_LIBRARY})

但是我什么也找不到,因为我不知道从哪里获取正确的库名,所以这行不通。我设法从here找到OPENGL名称。 但是我不知道在哪里可以找到librealsense的。如果有问题,我将使用旧版分支,并且不再支持r200。

如果有人可以通过Makefile或命令行来帮助我,那将非常好,因为我很难解决所有问题。

0 个答案:

没有答案