关于Beaglebone Black和Qt的ALSA问题:未找到-lasound

时间:2015-01-08 13:37:54

标签: cross-compiling embedded-linux alsa beagleboneblack qtembedded

我有一个 Beaglebone Black with debian 7.5

我的主机是 32位Ubuntu 14.10 安装。

我使用 Qt4.8.6 进行手臂交叉编译

我正在尝试创建一个使用触摸屏并从键盘读取MIDI输入的应用程序。 我已经使用以下教程(http://embedded.von-kannen.net/2014/05/21/qt-4-8-6-on-beaglebone-black/)来安装Qt嵌入式,因此我可以交叉编译到我的beaglebone(教程需要一些修复,我已经准备好了' doc准备好了如果有人需要一个)

文件已经部署到beagle并且它们可以工作,但是校准屏幕总是需要一些额外的输入。 这一切都很好,直到我的Qt项目需要RtMidi库来读取和发送MIDI信号。 我可以在我的桌面上使用RtMidi编译所有内容,但是当我尝试为BBB构建时,我接受了以下内容:

Cannot find -lasound
collect2: error: ld returned 1 exit status

我怀疑我需要为手臂建立ALSA,我试图在此帮助下做到:http://www.omappedia.org/wiki/ALSA_Setup

付出了一些努力,但我想我设法得到了一些东西。唉我把我的创作添加到Qt:

DEFINES += __LINUX_ALSA__
LIBS += -L/path/to/folder/containing/asound -lasound

我受到了欢迎:

undefined reference to: '__pol_chk#GLIBC_2.16' in /.../libasound.so file
collect2: error: ld returned 1 exit status

我做错了,或者它只是不再工作了。

我使用 arm-linux-gnueabi -c ++ / gcc 而不是 arm-none-linux-gnueabi -c ++ / gcc ,因为我从他的理解arm-none -linux-gnueabi stuff属于codesourcery工具链?无论如何,我没有arm-none-linux-gnueabi的东西......如果那是我的整个问题,我怎么得到它?

坦率地说,我很丢失。我甚至不知道手臂ALSA是否是问题所在。 我对Ubuntu并不是特别熟悉也不熟悉,但我别无选择。 Windows教程都需要免费提供的codesourcery工具链,而ubuntu教程的信息量更少,而且不那么罕见...... 我所做的所有教程似乎都过时了。一切都是为旧的Angstrom发布而制作的,而且不再有效...... 在这一点上,我完全忘记了为了让它发挥作用我应该做些什么。

我需要帮助。最好有5岁的指示(步骤和终端输入明确说明......)

我不确定我需要提供哪些其他信息,所以如果我错过了什么,请询问。

  • 如果重要的话,我的编程语言就是C ++。
  • 到目前为止,我使用过Linaro工具链,这是我所遵循的教程中使用的。

1 个答案:

答案 0 :(得分:0)

我找到了答案。 事实证明我正在使用的编译器确实是问题。 在获得 arm-none-linux-gnueabi 后,问题进展得有点但最终在我开始遇到VFP注册问题时再次停止...

我的解决方案最后是使用我之前用过的linaro编译器来编译Qtembedded。那就是: arm-linux-gnueabihf-gcc arm-linux-gnueabihf-c ++

我也部分地误解了alsa教程中的指令,并且正在编写错误的路径。

对于任何人通过谷歌搜索找到这个: 如果您被告知编译器工具链无法创建可执行文件:

$ PATH=/home/<user>/......./linaro-lotsa-version-numbers/bin/:$PATH

(包含大量可执行文件的文件夹,其中包含arm-linux-gnueabihf字样)

在执行CC = / bla / bla / bla命令之前。

类似于configure的--prefix选项可能看起来像这样:

/home/<user>/....../linaro-lotsa-version-numbers/arm-linux-gnueabihf/libc/usr
在Qt中使用

LIBS += -L/home/<user>/....../linaro-lotsaversionnumbers/arm-linux-gnueabihf/libc/usr/lib -lasound 

(您正在寻找包含libasound.so的文件夹)

也就是说,显然假设你在你的主文件夹中完成了你的工作,就像我按照上面的教程那样。