用于ARM的ALSA库和交叉编译

时间:2017-01-26 09:07:45

标签: c linux gcc alsa

我试图制作一个" C"应用我的NXP(飞思卡尔)imx6,Debian OS安装在它上面。我的主机是Ubuntu 16.04。我使用eclipse作为IDE,我可以设法交叉编译直到今天。我使用arm-linux-gnueabihf-gcc作为编译器,arm-linux-gnueabihf-ld作为链接器。我在我的链接器参数中添加了-lasound选项,但仍无法构建应用程序。我收到错误

  

arm-linux-gnueabihf-ld:找不到-lasound

我想我的Ubuntu(主机)计算机上没有libasound.so文件,我的链接器也无法链接到我的应用程序库。

我将libasound.so文件从我的ARM机器复制到我的主机到/home/user/Downloads文件夹,但仍然无法编译。

在构建之前是否有在交叉编译项目中使用ALSA库的步骤?

以下是构建操作的输出

Building target: tihc_linux_application
Invoking: GCC C Linker
/usr/bin/arm-linux-gnueabihf-ld -static -L/home/user/Downloads -pthread -lasound -o "main"  ./src/main.o   
/usr/bin/arm-linux-gnueabihf-ld: mode armelf_linux_eabi
/usr/bin/arm-linux-gnueabihf-ld: cannot find -lasound

1 个答案:

答案 0 :(得分:0)

您要求提供静态链接(通过-static),但提供共享库,以便ld可能忽略它(确保您可以使用-Wl,--verbose运行)。一种选择是从头开始交叉编译libalsa,然后使用生成的静态库链接您的应用程序。另一种选择是在某处搜索预编译的gnueabihf libalsa ...