我试图制作一个" 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
答案 0 :(得分:0)
您要求提供静态链接(通过-static
),但提供共享库,以便ld
可能忽略它(确保您可以使用-Wl,--verbose
运行)。一种选择是从头开始交叉编译libalsa,然后使用生成的静态库链接您的应用程序。另一种选择是在某处搜索预编译的gnueabihf libalsa ...