ALSA lib dlmisc.c (snd1_dlobj_cache_get) symbol _snd_pcm_plug_open is not defined inside [builtin]
2017-09-24 11:11
911 查看
$ aplay -D plug:dmix win7.wav ALSA lib dlmisc.c:263:(snd1_dlobj_cache_get) symbol _snd_pcm_plug_open is not defined inside [builtin] aplay: main:788: audio open error: No such device or address $
代码追踪:
而
_snd_pcm_plug_open所在的代码文件为
查看libasound.a有没有编译pcm_plug.c
可以看到,并没有此文件的。
编译的时候不指定
-with-pcm-plugins或者添加对
plug的支持
-with-pcm-plugins=plug,这样编译出来的libasound.a中就有pcm_plug.o了。如下图所示:
可见,
plug本身是也是一个
plug,呵呵。
再次aplay也不再报第一个错误了。不过有新的错误,如下所示:
$ aplay -D plug:dmix win7.wav ALSA lib pcm_direct.c:1722:(snd1_pcm_direct_parse_open_conf) The field ipc_gid must be a valid group (create group audio) aplay: main:788: audio open error: Invalid argument $
为
getgrnam_r写一个Demo,这里一个简单的DEMO获取了
audio这个group的详情。但是这个程序如果使用静态链接就会出错,这一点alsalib开发人员并没有想到。
稍作改进:
lib
make distclean ; ./gitcompile prefix=$PWD/tmp --enable-shared=no --enable-static=yes --without-libdl && make install
utils
make distclean; ./gitcompile prefix=$PWD/tmp --with-alsa-inc-prefix=/tmp/alsa-lib/tmp/include/ --with-alsa-prefix=/tmp/alsa-lib/tmp/lib CFLAGS="-static" --disable-alsamixer && aplay/aplay -D plug:dmix win7.wav
这次可以播放了。
至此解决了如果使用静态编译,dmix无法使用问题,只是一个grp引起的。
相关文章推荐
- ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open
- Could not get lock /var/lib/apt/lists/lock - open (11 Resource temporarily unavailable)
- Could not get lock /var/lib/dpkg/lock -open (11 Resource temporarily unavailable)
- java+flex项目部署中出现的错误- (Target runtime Apache Tomcat v6.0 is not defined,unable to open '../flex/services-config.xml')
- Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
- E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
- ubuntu E: Could not get lock /var/lib/dpkg/lock - open
- Ubuntu下Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
- E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
- ubuntu常见错误--could not get lock /var/lib/dpkg/lock -open
- Could not get lock /var/lib/dpkg/lock -open (11: Resource temporarily unavailable)
- Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailab
- ubuntu下sudo apt-get update出错:E: Could not get lock /var/lib/apt/lists/lock - open……
- E: Could not get lock /var/lib/dpkg/lock - open
- ubuntu 16.04安装软件常见错误 Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
- Could not get lock /var/lib/dpkg/lock - open 解决方法
- E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
- Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to loc
- 解决 E:could not get lock /var/lib/dpkg/lock -open等问题
- Could not get lock /var/lib/dpkg/lock - open 解决方法