libVLC开发: vs2017编译器编译出错解决办法

613 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

报错提示如下:

image.png

\VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符
\VLC\sdk\include\vlc/libvlc_media.h(368): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2513: “int”: 在“=”前没有声明变量
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2143: 语法错误: 缺少“;”(在“(”的前面)
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2062: 意外的类型“void” 
\VLC\sdk\include\vlc/libvlc_media.h(478): error C2061: 语法错误: 标识符“libvlc_media_read_cb”
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2065: “libvlc_media_read_cb”: 未声明的标识符
\VLC\sdk\include\vlc/libvlc_media.h(368): error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2513: “int”: 在“=”前没有声明变量
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2143: 语法错误: 缺少“;”(在“(”的前面)
\VLC\sdk\include\vlc/libvlc_media.h(368): error C2062: 意外的类型“void” 
\VLC\sdk\include\vlc/libvlc_media.h(478): error C2061: 语法错误: 标识符“libvlc_media_read_cb”

打开 #include <vlc/vlc.h> 文件,添加:typedef __int64 ssize_t;

image.png

image.png

#ifndef VLC_VLC_H
#define VLC_VLC_H 1

/**
 * \file
 * This file defines libvlc new external API
 */

# ifdef __cplusplus
extern "C" {
# endif
typedef __int64 ssize_t;
#include <vlc/libvlc.h>
#include <vlc/libvlc_renderer_discoverer.h>
#include <vlc/libvlc_media.h>
#include <vlc/libvlc_media_player.h>
#include <vlc/libvlc_media_list.h>
#include <vlc/libvlc_media_list_player.h>
#include <vlc/libvlc_media_library.h>
#include <vlc/libvlc_media_discoverer.h>
#include <vlc/libvlc_events.h>
#include <vlc/libvlc_dialog.h>
#include <vlc/libvlc_vlm.h>
#include <vlc/deprecated.h>

# ifdef __cplusplus
}
# endif

#endif /* _VLC_VLC_H */

编译完,程序运行异常结束。

image.png

需要将plugins目录和sdk/dll目录下的所有的dll后缀文件拷贝到程序运行同级目录下。

image.png