Clion在Ubuntu 16.04 Lts上找不到GSTREAMER
gstreamer not found by CLion on Ubuntu 16.04 LTS
我正在研究一个项目,该项目要求GSTREAMER将网络摄像头馈电通过upd将feed传输到另一台计算机。我整个早晨都在尝试将GSTREAMER安装在我的Ubuntu 16.04上,最终我设法使用以下命令来使其正常工作:
sudo apt-get install libgstreamer0.10-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 gstreamer0.10-tools gstreamer-tools gstreamer0.10-doc gstreamer0.10-x
我还修改了项目中的CMAKE文件,以尝试获取Gstreamer库(请参阅评论):
cmake_minimum_required(VERSION 3.1.0)
PROJECT(gstreamer-test)
# paths
LINK_DIRECTORIES(/usr/local/lib) # OpenCV
LINK_DIRECTORIES(/usr/include/glib-2.0) #gstreamer
LINK_DIRECTORIES(/usr/include/gstreamer-0.10)
# Build settings
SET(EXECUTABLE_OUTPUT_PATH build/bin)
SET(LIBRARY_OUTPUT_PATH build/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY build)
# Compiler settings
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
SET(OpenCV_LIBRARIES opencv_core opencv_highgui opencv_videoio -lopencv_calib3d opencv_imgproc -lopencv_imgcodecs opencv_ml opencv_objdetect opencv_features2d opencv_flann)
add_executable(gstreamer_test main.cpp)
TARGET_LINK_LIBRARIES(gstreamer_test ${OpenCV_LIBRARIES})
仍然,Clion拒绝包括Gstreamer。当我尝试从其网站(https://gstreamer.freedesktop.org/documentation/application-development/basics/helloworld.html)构建教程" Hello World"应用.h和glib.h文件。
一些福拉建议使用find_package命令,但我什至不确定该库的确切包名称是什么,我只知道标题文件的位置。关于此的文档似乎也很少。
有人知道如何在我的项目中正确包含Gstreamer库吗?
尝试find_package
。您可以使用此模块https://github.com/webkit/webkit/blob/master/source/cmake/findgstreamer.cmake.cmake,然后将其放在./cmake/中。而不是添加到您的cmakelists.txt
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/)
find_package(GStreamer)
if(GStreamer_FOUND)
message(STATUS "FOUND!!")
include_directories(${GSTREAMER_INCLUDE_DIRS})
endif()
...
target_link_libraries(gstreamer_test ${GSTREAMER_LIBRARIES})
我的cmake输出:
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'gstreamer-1.0 >= '
-- Found gstreamer-1.0 , version 1.8.3
-- Checking for module 'gstreamer-base-1.0 >= '
-- Found gstreamer-base-1.0 , version 1.8.3
-- Checking for module 'gstreamer-app-1.0 >= '
--
-- Checking for module 'gstreamer-audio-1.0 >= '
和cmakecache中的变量:
//Path to a library.
GSTREAMER_LIBRARIES:FILEPATH=/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so
只需使用INCLUDE_DIRECTORIES
而不是LINK_DIRECTORIES
- 第一个代表
-I
编译器选项(在哪里找到标头)。 - 第二个-
-L
(在哪里找到库)。
您知道这是不同的事情。
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- Clion在Ubuntu 16.04 Lts上找不到GSTREAMER