【发布时间】:2012-04-03 08:57:55
【问题描述】:
我想交叉编译 portaudio 以便在 ARM 系统 (devkit8000) 上使用它。我正在尝试以这种方式使用此板(arm-none-linux-gnueabi)提供的交叉编译工具
CXX=../cross/arm-2007q3/bin/arm-none-linux-gnueabi-g++ ./configure --target=arm-linux --host=arm-linux
但是当我尝试将 portaudio 对象与我编译的源代码链接时,它告诉我
../cross/arm-2007q3/bin/arm-none-linux-gnueabi-g++ -L../portaudio/lib/.libs -lportaudio prova.cpp
../portaudio/lib/.libs/libportaudio.so: file not recognized: File format not recognized
collect2: ld returned 1 exit status
【问题讨论】:
-
检查此路径中的 ARM 库
./portaudio/libARM 库通常具有.a扩展名。.so一般在 x86 上 -
是的,它是用 x86 gcc 编译的,谢谢。也许我找到了一个解决方案:我把我的交叉编译 bin 路径放在 PATH 变量中,然后我以这种方式调用 configure
CC=../cross/arm-2007q3/bin/arm-none-linux-gnueabi-gcc CXX=../cross/arm-2007q3/bin/arm-none-linux-gnueabi-g++ ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi。我的源代码的编译现在返回,没有错误。我现在将尝试将它部署到板中 -
如果一切顺利,请告诉我。我将把我的评论作为答案,以便您接受它;-)
-
如果您认为将来会遇到许多此类冲突,我可以推荐 pkg-config 以一种很好的方式设置路径以进行交叉编译
标签: c++ makefile arm gnu portaudio