Beaglebone Black 和 Qt 上的 ALSA 问题:-lasound 未找到
Issues with ALSA on Beaglebone Black and Qt: -lasound not found
我有一个 Beaglebone Black,上面装有 debian 7.5。
我的主机是32位Ubuntu14.10安装。
我正在使用 Qt4.8.6 for arm cross-compilation
我正在尝试创建一个使用触摸屏并从键盘读取 MIDI 输入的应用程序。
我已经使用以下教程 (http://embedded.von-kannen.net/2014/05/21/qt-4-8-6-on-beaglebone-black/) 安装 Qt embedded,这样我就可以交叉编译到我的 beaglebone(教程需要一些修复,如果有人需要的话,我已经准备好了 'fixed' 文档)
文件已部署到 beagle 上并且可以正常工作,但校准屏幕总是需要一些额外的输入。
这一切都有效 fine-ish 直到我的 Qt 项目需要 RtMidi 库来读取和发送 MIDI 信号。
我可以在我的桌面上用 RtMidi 编译所有东西,但是当我尝试为 BBB 构建时,我遇到了以下问题:
Cannot find -lasound
collect2: error: ld returned 1 exit status
我怀疑我需要为 arm 构建 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 东西属于 codesourcery 工具链?无论如何,我没有 arm-none-linux-gnueabi 东西...如果这是我的全部问题,我该如何获得它?
坦率地说,我很迷茫。我什至不知道 arm ALSA 是否是问题所在。
我对 Ubuntu 不是特别熟悉也不太舒服,但我别无选择。 Windows 的教程都需要不再免费提供的 codesourcery 工具链,而 ubuntu 教程的信息量更大,而且很少见……
我正在做的所有教程似乎都过时了。一切都是为旧的 Angstrom 发行版制作的,不再有效了......
在这一点上,我完全忘记了我应该做什么才能让它工作。
我需要帮助。最好附上您给 5-year-old 的说明(清楚地说明步骤和终端输入...)
我不确定我还需要提供哪些其他信息,所以如果我遗漏了什么,请询问。
- 如果重要的话,我的编程语言是 C++。
- 到目前为止,我一直在使用 Linaro 工具链,因为它是我遵循的教程中使用的工具链。
我找到了答案。
事实证明我使用的编译器确实是问题所在。
在我接触 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 的文件夹)
也就是说,显然假设您像我按照上述教程所做的那样在主文件夹中完成工作。
我有一个 Beaglebone Black,上面装有 debian 7.5。
我的主机是32位Ubuntu14.10安装。
我正在使用 Qt4.8.6 for arm cross-compilation
我正在尝试创建一个使用触摸屏并从键盘读取 MIDI 输入的应用程序。 我已经使用以下教程 (http://embedded.von-kannen.net/2014/05/21/qt-4-8-6-on-beaglebone-black/) 安装 Qt embedded,这样我就可以交叉编译到我的 beaglebone(教程需要一些修复,如果有人需要的话,我已经准备好了 'fixed' 文档)
文件已部署到 beagle 上并且可以正常工作,但校准屏幕总是需要一些额外的输入。 这一切都有效 fine-ish 直到我的 Qt 项目需要 RtMidi 库来读取和发送 MIDI 信号。 我可以在我的桌面上用 RtMidi 编译所有东西,但是当我尝试为 BBB 构建时,我遇到了以下问题:
Cannot find -lasound
collect2: error: ld returned 1 exit status
我怀疑我需要为 arm 构建 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 东西属于 codesourcery 工具链?无论如何,我没有 arm-none-linux-gnueabi 东西...如果这是我的全部问题,我该如何获得它?
坦率地说,我很迷茫。我什至不知道 arm ALSA 是否是问题所在。 我对 Ubuntu 不是特别熟悉也不太舒服,但我别无选择。 Windows 的教程都需要不再免费提供的 codesourcery 工具链,而 ubuntu 教程的信息量更大,而且很少见…… 我正在做的所有教程似乎都过时了。一切都是为旧的 Angstrom 发行版制作的,不再有效了...... 在这一点上,我完全忘记了我应该做什么才能让它工作。
我需要帮助。最好附上您给 5-year-old 的说明(清楚地说明步骤和终端输入...)
我不确定我还需要提供哪些其他信息,所以如果我遗漏了什么,请询问。
- 如果重要的话,我的编程语言是 C++。
- 到目前为止,我一直在使用 Linaro 工具链,因为它是我遵循的教程中使用的工具链。
我找到了答案。 事实证明我使用的编译器确实是问题所在。 在我接触 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 的文件夹)
也就是说,显然假设您像我按照上述教程所做的那样在主文件夹中完成工作。