音视频开发---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,查找相关资料,看到以下说明:

音视频开发---SDL_Init failed问题分析_第1张图片

于是查询: ldconfig -p | grep X11

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

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

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

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

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窗口中出现了我们创建的窗口:

音视频开发---SDL_Init failed问题分析_第2张图片

 

 

 

 

 

 

你可能感兴趣的:(音视频)