У меня проблема с libasound.so, работает правильно;в зависимости от того, как я его связываю.
У меня есть простой main.cpp, который создает экземпляр класса, определенного в отдельном .so, и вызывает для него метод.Этот метод вызывает различные функции libasound.so.
Если я сделаю ссылку на уровне исполняемого файла;то есть, связывая main.o с myclass.so и libasound.so;вызовы подпрограмм libasound не работают.
Если я установлю связь на уровне library , то это сработает;IE, если я связываю myclass.so с libasound.so, а затем связываю main.o с myclass.so и libasound.so;тогда это работает.
В обоих случаях шаг соединения завершается успешно;все символы разрешены.И под «работает» я имею в виду, что вызовы snd_pcm_foo * работают.Когда это не работает, у меня проблемы с установкой hw_rate и hw_period;получать EINVAL.Я пытался включить отладку.Мне кажется, что в значениях, пытающихся быть заданными для рассматриваемых параметров, есть мусор.Почти как будто есть проблема инициализации или выравнивания данных.
Он работает на процессоре ARM.