Re: [alsa-devel] Plug In Creation - aplay can't find existing .so
At Tue, 17 Jun 2014 15:08:31 -0400, Brandon Yates wrote:
Interestingly strace shows the failure occurs on the open call (not dlopen)
open("/usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_adt_dsp.so", O_RDONLY|O_CLOEXEC) = 3
This succeeded and returned the proper fd number 3.
running ldd on my shared library shows undefined symbols that are part of libasound, for example undefined symbol: snd_pcm_ioplug_create
I wonder if I have to build the .so a different way so these can be resolved? Any advice would be greatly appreciated.
Maybe you forgot to link your shared object with -lasound -lm?
Takashi
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Friday, June 13, 2014 8:42 AM To: Brandon Yates Cc: alsa-devel@alsa-project.org Subject: Re: [alsa-devel] Plug In Creation - aplay can't find existing .so
At Tue, 10 Jun 2014 13:55:39 -0400, Brandon Yates wrote:
Hello,
I am working on a new pcm plugin. At this point it is basically just a
Hello World plugin, to make sure I have the tools working and understand the workflow. I created a simple file which is just
basically:
#include <alsa/asoundlib.h> #include <alsa/pcm_external.h> SND_PCM_PLUGIN_DEFINE_FUNC(my_mod) { printf("hello world\n"); return 0; } SND_PCM_PLUGIN_SYMBOL(my_mod);
I compiled this as a shared lib named
'libasound_module_pcm_my_mod.so'
and copied it to '/usr/lib/i386-linux-gnu/alsa-lib/'
I edited my ~/.asoundrc to create a new device that uses this plugin. Then I try to use it with `aplay --device=my_mod_test out.pcm`
I get the error message
ALSA lib dlmisc.c:254:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/i386-linux-gnu/alsa-lib/libasound_module_pcm_my_mod.so aplay: main:682: audio open error: No such device or address
But this file actually does exist, I just copied it there.
Any idea why this happens?
Try strace to see what happens. If it fails in dlopen(), it's likely because your shared object is invalid.
Takashi
participants (1)
-
Takashi Iwai