音视频开发---SDL_Init failed问题分析

SDL2的安装可以参考博客:https://blog.csdn.net/u011734326/article/details/90346495

在使用SDL2显示摄像头影像时,遇到了一个不可思议的问题,log如下:

SDL_Init failed:-1
No available video device

   SDL_Init返回-1, 原因是:No available video device.

  本人采用的运行环境是基于mac笔记本virtualBox的ununtu 16.04,出现以上低级问题, 第一感觉就是怀疑是不是缺少什么库导致SDL不具备发现video device的能力了。于是登录SDL官网http://wiki.libsdl.org/FrontPage,查找相关资料,看到以下说明:

于是查询: ldconfig -p | grep X11

应该是缺少libX11.so,执行命令:

sudo apt-get install libx11-dev
sudo apt-get install xorg-dev

然后写了一个简单的测试程序来验证SDL是否正常,代码如下:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <linux/videodev2.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
#include <SDL2/SDL.h>

void SDL2_init()
{
	int rc;
	//SDL_SetMainReady();
	if( (rc=SDL_Init( SDL_INIT_VIDEO )) !=0){
		printf("SDL_Init failed:%d\n",rc);
		printf("%s\n",SDL_GetError());
		return;
	}
	SDL_Window * screen;
	screen = SDL_CreateWindow("SDL2 title", SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,screen_w, screen_h, SDL_WINDOW_OPENGL);
	if(!screen){
		printf("SDL2: could not create widow\n");
		return ;
	}
	
	
}

int main(void)
{
	SDL2_init();
	return 0;
}
 

编译: gcc main.c -lSDL2

执行后依然出现: No available video device.

抱着怀疑的态度,重新编译安装了SDL2, 程序运行成功,在Ubuntu窗口中出现了我们创建的窗口:

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值