如何在android 中編譯alsa-utils工具

                                                                                     如何在android 中編譯alsa-utils工具


最近在看ALSA 的driver,嘗試了在android 中編譯alsa-utils工具,下面講述下,我是如何進行編譯以及過程中遇到的問題如何解決的:

首先我從ALSA 官方網上下載了alsa-utils-1.0.23版本的工具,因爲我android 的alsa-lib 也是1.023版本的,防止版本不一樣出現問題,我就選擇了版本一樣,我們的alsa-lib放的路徑是在android_source/external/alsa-lib目錄下面,我們下載的alsa-utils-1.023工具包也下載放在裏面。

接下來我們需要完成以下幾個動作:

1、在alsa-utils下面創建一個Android.mk

寫的內容是:

ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)


LOCAL_PATH:= $(call my-dir)

#
# Build aplay command
#

include $(CLEAR_VARS)
LOCAL_CFLAGS := \
        -fPIC -D_POSIX_SOURCE \
        -DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \
        -DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \
        -DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"

LOCAL_C_INCLUDES:= \
        $(LOCAL_PATH)/include \
        $(LOCAL_PATH)/android \
        external/alsa-lib/include

LOCAL_SRC_FILES := \
        aplay/aplay.c

LOCAL_MODULE_TAGS := debug
LOCAL_MODULE := alsa_aplay
LOCAL_SHARED_LIBRARIES := \
        libasound \
        libc
include $(BUILD_EXECUTABLE)

上面我只寫了個編譯aplay工具的代碼,別的工具也是一樣的寫法

2、接下來進入alsa-utils工具包裏面進行創建sys目錄和aconfig.h文件,在aconfig.h文件裏面編寫以下內容

#define DATADIR "/system/usr/share/alsa"

#define rindex strrchr

#define open64 open

#undef __swab16

#define __swab16(x)  __arch__swab16((x))

#undef __swab32

#define __swab32(x)  __arch__swab32((x))


3、進入第2步中創建的sys目錄,在sys目錄中創建signal.h頭文件,在這個頭文件中寫如以下內容

#include <signal.h>
4、接下來你直接編譯android 就可以了,在編譯過程中可能出現以下 錯誤“

4.1:kernel/common/linux/un.h:18: error: expected specifier-qualifier-list before 'sa_family_t

那是因爲我們在alsa-utils/alsactl/init_parse.c裏面在include un.h之前沒有#include <sys/socket.h>,你只要在這之前include這個頭文件就解決了

4.2:還有可能遇到這個錯誤:在aplay.c裏面會提示報錯'S_IRGRP' undeclared (first use in this function,你只要在在aplay.c裏面添加一個頭文件:#include <sys/stat.h>,這樣就解決了

4.3:接下來可能語言到這樣的錯誤:speaker-test.c裏面報wav_file_dir沒有定義,這個值是用來定義你的wav文件存放在pad中的位置的,你隨便放在哪裏,我定義的路徑 就是在/sdcard目錄下面

經過上面的種種修改,alsa-utils工具終於編譯成功了

在編譯過程中,有個網址還是值得去瀏覽的:http://gitorious.org/rowboat/external-alsa-utils/trees/master

以上就是我在編譯過程中的遇到的問題

發佈了18 篇原創文章 · 獲贊 11 · 訪問量 37萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章