ubuntu编译SDL2,运行test报错
问题:
- Couldn’t open audio device: No available audio device
- Couldn’t open video device: No available video device
环境
- Ubuntu 20.04.1 LTS 64bit
- SDL2-2.0.12
编译方式
wget http://www.libsdl.org/release/SDL2-2.0.12.tar.gz
tar -zxvf SDL2-2.0.12.tar.gz
cd SDL
mkdir build
cd build
../configure
make
sudo make install
编译成功后运行SDL2 目录下的测试用例,先编译test目录文件
cd test
configure
make
运行loopwave
cd test
./loopwave
输入日志
sky@sky:~/SDL2-2.0.12/test$ ./loopwave
INFO: Available audio drivers:
INFO: 0: dsp
INFO: 1: disk
INFO: 2: dummy
Couldn't open audio device: No available audio device
搜索后找到了对应的解决方案,原话是这样的
If you built your own SDL, you probably didn’t have development headers
for PulseAudio (or ALSA), so it’s trying to use /dev/dsp, which doesn’t
exist on many modern Linux systems (hence, SDL_Init(SDL_INIT_AUDIO)
succeeds, but no devices are found when you try to open one). “apt-get
install libasound2-dev libpulse-dev” and rebuild SDL…let the configure
script find the new headers so it includes PulseAudio and ALSA support.
其实说白了就是你编译的环境默认使用dsp设备播放,但是由于现代操作系统已经不支持dsp了
你需要安装 libasound2-dev libpulse-dev这些库使SDL能使用PulseAudio播放.
解决办法
1. sudo apt install libasound2-dev libpulse-dev
2. rebulid SDL