ALSA编译中的一些问题总结

想在ARM上跑一个自己写的alsa应用程序,为了编译的问题纠结了一晚上,把自己的一些经验写下来

首先是安装alsa-lib

从网上找的交叉编译方法:

ALSA交叉编译

1,  下载alsa-lib-1.0.15rc2.tar.bz2

 http://download.chinaunix.net/download/0001000/358.shtml

或者http://www.alsa-project.org/main/index.php/Main_Page

2,  tar jxvf alsa-lib-1.0.15rc2.tar.bz2

cd alsa-lib-1.0.15rc2

          ./configure --host=arm-none-linux-gnueabi --prefix=/home/part2/alsa-lib

          make & make install

          这时在/home/part2/alsa-lib目录下就产生了一些头文件了。

这部还算顺利,因为写的是一个大程序用的是QT开发环境,加上对Makefile的理解还不深,期间遇到了很多问题。

主要是找不到alsa/asoundlib.h,编译时找不到-lasound  程序在pc上跑的好好的一用arm-linux-g++就出现一大堆问题

这是我的pro文件:

TARGET = alsa_test_arm2

TEMPLATE = app

INCLUDEPATH += /liu/jrtp/include/jrtplib3 /

    /liu/jthread/include/jthread /

    /home/part3/alsa-lib/include

LIBS += -L/home/part3/alsa-lib/lib /

    -lasound   /

    /liu/jrtp/lib/libjrtp.a /

    /liu/jthread/lib/libjthread.a

HEADERS += myalsa.h /

    myrtpsession.h /

    mysound.h /

    myvolume.h /

    sound.h

SOURCES += myalsa.cpp /

    myrtpsession.cpp /

    mysound.cpp /

    mytest.cpp /

    myvolume.cpp

当时想在makefile中加入-lasound 结果发现加到那里都是错,-lasound是一个链接,帮助include找到lib的,要紧跟在lib库文件的后面

他在打开makefile文件后找到了他的位子:

LIBS          = $(SUBLIBS)  -L/usr/local/QtEmbedded-4.5.2/lib -L/home/part3/alsa-lib/lib -lasound /liu/jrtp/lib/libjrtp.a /liu/jthread/lib/libjthread.a -lQtGui -L/usr/local/tslib/lib -L/usr/local/QtEmbedded-4.5.2/lib -lts -lpng -lQtNetwork -lQtCore -lz -lm -lrt -ldl -lpthread

果然是紧跟在alsa-lib的后面,我以前总是把它放在最后面,难怪总是显示找不''到-lasound 。

搞编程的过程有时候是痛苦的,特别是遇到链接编译的问题,网上各种招贴子求答案,结果可能就是自己犯了一个小错误,多加了一个'/'或者库文件 的位子不对,可是历经万难解决后那种成就感确实是让人很爽的呢!!加油

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值