转载地址:http://blog.chinaunix.net/uid-22950545-id-2600583.html
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目录下就产生了一些头文件了。
3,/home/part2/alsa-lib-1.0.15rc2/test目录下有一些示例,我们可以试着交叉编译一下。
arm-none-linux-gnueabi-gcc -I/home/part2/alsa-lib/include -L/home/part2/alsa-lib-1.0.15rc2/src/.libs/ -lasound -o control control.c
注意这里一定要加上-L/home/part2/alsa-lib-1.0.15rc2/src/.libs/,否则会找不到alsa库,网上一些文章都没有加这个链接。
结果是没有问题的。但如果每次编译都输入这么一长串,很不方便,所以最好写个通用的Makefile文件,要编译时就make一下就OK了。
如下:
#Makefile
CC=arm-none-linux-gnueabi-gcc
TARGET=target
SRC=$(wildcard *.c)
OBJECT= ${SRC:.c=.o}
INCLUDES=-I/home/part2/alsa-lib/include
LIBPATH=-L/home/part2/alsa-lib-1.0.15rc2/src/.libs/
LDFLAGS=-lasound
all:$(TARGET)
$(OBJECT):$(SRC)
$(CC) -c $(INCLUDES) $<
$(TARGET):$(OBJECT)
$(CC) -o $@ $< $(LIBPATH) $(LDFLAGS)
.PHONY:clean
clean:
@rm -rf $(OBJECT) $(TARGET) *~