Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.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++ libVLC | make:对“libVLC|u new'”的未定义引用;_C++_Makefile_Cmake_Libvlc - Fatal编程技术网

C++ libVLC | make:对“libVLC|u new'”的未定义引用;

C++ libVLC | make:对“libVLC|u new'”的未定义引用;,c++,makefile,cmake,libvlc,C++,Makefile,Cmake,Libvlc,对于一个小项目,我决定使用libvlcC/C++ 使用不同的引用,我以某种方式安装了opencv和libvlc库,并编写了以下CMake文件: cmake_minimum_required(VERSION 3.10) project(untitled1) set(CMAKE_CXX_STANDARD 14) SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/config

对于一个小项目,我决定使用
libvlc
C/C++

使用不同的引用,我以某种方式安装了opencv和libvlc库,并编写了以下CMake文件:

cmake_minimum_required(VERSION 3.10)
project(untitled1)

set(CMAKE_CXX_STANDARD 14)
SET(CMAKE_MODULE_PATH
        ${CMAKE_SOURCE_DIR}/cmake
        ${CMAKE_SOURCE_DIR}/config
        ${CMAKE_SOURCE_DIR}/config/platform
        )

find_package(OpenCV REQUIRED)
find_package(LIBVLC REQUIRED)



file(GLOB SOURCE_FILES
        "${CMAKE_CURRENT_SOURCE_DIR}/*.h"
        "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
        )
add_executable(untitled1 ${SOURCE_FILES})

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

if(CMAKE_VERSION VERSION_LESS "2.8.11")
    # Add OpenCV headers location to your include paths
    include_directories(${OpenCV_INCLUDE_DIRS})
endif()


include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${LIBVLC_INCLUDE_DIRS})

set(LIBS ${LIBS} ${OpenCV_LIBS})
set(LIBS ${LIBS} ${LIBVLC_LIBRARIES} )



target_link_libraries( untitled1 ${LIBS})
但是当我这样做时,
cmake
然后
make
我得到以下错误:

[100%] Linking CXX executable untitled1
CMakeFiles/untitled1.dir/VLCReader.cpp.o: In function `VLCReader::VLCReader(char*)':
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:17: undefined reference to `libvlc_new'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:18: undefined reference to `libvlc_media_player_new'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:21: undefined reference to `libvlc_video_set_callbacks'
CMakeFiles/untitled1.dir/VLCReader.cpp.o: In function `VLCReader::~VLCReader()':
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:26: undefined reference to `libvlc_media_player_stop'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:27: undefined reference to `libvlc_media_player_release'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:28: undefined reference to `libvlc_release'
CMakeFiles/untitled1.dir/VLCReader.cpp.o: In function `VLCReader::start(int, int)':
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:33: undefined reference to `libvlc_media_player_pause'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:34: undefined reference to `libvlc_media_new_location'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:35: undefined reference to `libvlc_media_player_set_media'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:36: undefined reference to `libvlc_media_release'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:38: undefined reference to `libvlc_video_set_format'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:39: undefined reference to `libvlc_media_player_play'
CMakeFiles/untitled1.dir/VLCReader.cpp.o: In function `VLCReader::pause(bool)':
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:45: undefined reference to `libvlc_media_player_set_pause'
CMakeFiles/untitled1.dir/VLCReader.cpp.o: In function `VLCReader::updataSize()':
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:51: undefined reference to `libvlc_video_get_width'
/home/ravinder/CLionProjects/untitled1/VLCReader.cpp:52: undefined reference to `libvlc_video_get_height'
collect2: error: ld returned 1 exit status
CMakeFiles/untitled1.dir/build.make:166: recipe for target 'untitled1' failed

请帮我继续。我对基于C/C++cmake的世界是一个全新的人。

感谢@Tsyvarev和其他人,他们把我的心朝着正确的方向

我在CMake文件中的错误是,我使用了错误的变量名,或者说是未定义的usng变量

LIBVLC\u INCLUDE\u DIRS
to
LIBVLC\u INCLUDE\u DIR

LIBVLC_库
to
LIBVLC_库


谢谢大家

谢谢@Tsyvarev和其他为我指明正确方向的人

我在CMake文件中的错误是,我使用了错误的变量名,或者说是未定义的usng变量

LIBVLC\u INCLUDE\u DIRS
to
LIBVLC\u INCLUDE\u DIR

LIBVLC_库
to
LIBVLC_库


谢谢大家

链接器找不到几个“libvlc”定义,这表明您缺少这些库。您能否验证
LIBVLC\u LIBRARIES
CMake变量是否填充了有效的库?您可以使用CMake
message
命令,就像您对OpenCV变量所做的那样。这将有助于在您分配给
CMAKE\u MODULE\u PATH
变量
FindLIBVLC.CMAKE
脚本的某个目录下执行,该脚本实际上是在处理调用
find\u package(LIBVLC)
时执行的。阅读该脚本顶部的文档,找出它为在项目中使用它们而设置的实际变量。最有可能的是,您在代码中使用的变量
LIBVLC_库
,根本不是由此脚本设置的。@Tsyvarev感谢先生键入了相同的内容:)这是FindLIBVLC在我使用复数时设置的单数变量。链接器找不到多个“LIBVLC”定义,这表明您缺少这些库。您能否验证
LIBVLC\u LIBRARIES
CMake变量是否填充了有效的库?您可以使用CMake
message
命令,就像您对OpenCV变量所做的那样。这将有助于在您分配给
CMAKE\u MODULE\u PATH
变量
FindLIBVLC.CMAKE
脚本的某个目录下执行,该脚本实际上是在处理调用
find\u package(LIBVLC)
时执行的。阅读该脚本顶部的文档,找出它为在项目中使用它们而设置的实际变量。最有可能的是,您在代码中使用的变量
LIBVLC_库
,根本不是由此脚本设置的。@Tsyvarev感谢先生键入了相同的内容:)这是FindLIBVLC在我使用复数时设置的单数变量。