Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Librealsense(遗留)和GLFW3的CMakeTextFile.txt_C++_Cmake - Fatal编程技术网

C++ Librealsense(遗留)和GLFW3的CMakeTextFile.txt

C++ Librealsense(遗留)和GLFW3的CMakeTextFile.txt,c++,cmake,C++,Cmake,我想为r200相机做一个小应用程序。它使用C++,它需要使用LyBalLoad库和GLFW3库。p> 之前,我试图通过命令行使用以下命令编译此程序: 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

我想为r200相机做一个小应用程序。它使用C++,它需要使用LyBalLoad库和GLFW3库。p> 之前,我试图通过命令行使用以下命令编译此程序:

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\u key\u delete@@GLIBC\u 2.2.5” //lib/x86_64-linux-gnu/libpthread.so.0:添加符号时出错:DSO 命令行集合中缺少2:错误: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})
然而,我找不到任何东西,这也不起作用,因为我不知道从哪里获得正确的库名。我设法从中找到了OPENGL的名称。 但我不知道在哪里可以找到librealsense的。如果重要的话,我正在使用一个遗留分支,并且r200不再受支持


如果有人能在Makefile或命令行方面帮助我,那就太好了,因为我很难弄清楚这一切。

“如果我删除了--static标记,我收到了这个错误:…”-显示您的错误,而不是另一个问题中的错误。虽然您的错误和其他错误中都存在一行“命令行中缺少DSO”,但错误的其他内容不同(不同的函数、文件名等)。hi Tsyvarev我只是重新运行了该命令并添加了确切的错误消息。很抱歉延迟。您收到的“未定义引用”错误是关于错过链接到
pthread
。要在CMake项目中正确使用
pthread
,请参见以下问题:。
librealsense
与一个问题有什么关系?我也想知道如何构建CMakeLists.txt文件。不幸的是,我不知道如何包含librealsense模块,而不只是将其作为子目录并以这种方式构建(需要半个小时),因此我希望有人能教我如何查找并将其作为一个包添加。请更新您的问题帖子,以便它能反映您的实际问题。目前,该问题包含错误消息,可以通过阅读另一个SO问题来解决,并且没有提到您打算将librealsense用作已存在的库(不构建它)。