【问题标题】:Cross compiling portaudio for ARM architectureARM架构的交叉编译portaudio
【发布时间】: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/lib ARM 库通常具有 .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


【解决方案1】:

最后我使用了 bitbake 和 openembedded。只是添加到我的 bitbake 食谱中

DEPENDS = "portaudio-v19"

bitbake 为您的机器构建 portaudio,您只需将 ipk 包(在我的情况下,使用 Angstrom 2012.05)从 tmp/deploy/... 子目录复制到您的系统并使用(在 Angstrom 2012.05 中)安装它:

opkg install <package_name>.ipk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-13
    • 2010-10-04
    • 1970-01-01
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    相关资源
    最近更新 更多