使用此行时出现问题:
vlcInstance = libvlc_new(0, NULL);
vlcInstance 在我的标题中声明:
libvlc_media_player_t *vlcPlayer;
我使用的是Qt 5.0.1,我有这个错误:
The inferior stopped because it received a signal from the Operating System.
Signal name : SIGSEGV Signal meaning : Segmentation fault
任何人都可以帮助我吗?
答案 0 :(得分:2)
在Windows上有一个相同的问题,一个简单的程序链接到VLC发行版的预建静态库。解决方案只是将.dll
文件和plugins
文件夹从VLC分发根目录复制到应用程序文件夹。
答案 1 :(得分:1)
我在64位Kubuntu 13.04上使用Qt Creator 2.7.2和QT 5.1.0。我也在使用vlc-2.2.0-git。
我创建了一个新的QT项目。
我将此添加到新项目文件中(根据需要更改vlc路径):
INCLUDEPATH += /home/linux/vlc/install/include
LIBS += -L"/home/linux/vlc/install/lib" -lvlc
bare-bones main.cpp(包括显然是段错误的代码):
#include <QtDebug>
#include "vlc/libvlc.h"
#include "vlc/libvlc_media.h"
#include "vlc/libvlc_media_player.h"
int main(int argc, char *argv[]) {
qDebug() << "Starting...";
libvlc_instance_t* p_instance = libvlc_new(0, NULL);
qDebug() << "p_instance" << p_instance;
if (p_instance) {
libvlc_media_player_t *p_media_player = libvlc_media_player_new(p_instance);
qDebug() << "p_media_player" << p_media_player;
if (p_media_player) {
libvlc_media_player_release(p_media_player);
}
libvlc_free(p_instance);
}
qDebug() << "Exit normally";
}
这对我来说运行得很好,没有段错误:
Starting...
p_instance 0x19140f0
p_media_player 0x19da6d8
Exit normally