移植开源库libsndfile到arm linux开发板
1. 下载压缩源码包libsndfile-1.0.28.tar.gz到linux开发主机。
2. 新建一个文件夹libsndfile,将源码压缩包libsndfile-1.0.28.tar.gz拷贝到该目录。
3. 在libsndfile目录中新建一个目录install,后续make install会自动将生成的库和头文件等需要部署的内容拷贝到该目录,方便部署到板端。
4. 解压源码压缩包libsndfile-1.0.28.tar.gz,tar xvf libsndfile-1.0.28.tar.gz
5. 进入解压后的文件夹libsndfile-1.0.28
6. 执行./configure --prefix=/xxx/libsndfile/install --host=arm-linux --target=arm CC=/xxx/xxx/arm-linux-gnueabihf-gcc AR=/xxx/xxx/arm-linux-gnueabihf-ar --disable-external-libs
6.1 --prefix=后面的目录是刚刚创建的install目录
6.2 CC=是linux开发主机上安装的交叉编译工具链
6.3 AR=是交叉编译工具链中生成静态库的工具。
7. 执行make命令
8. 执行make install命令
移植ekho到arm linux开发板
1. 下载压缩源码包ekho-6.3.tar.xz到linux开发主机。
2. 新建一个文件夹ekho,将源码压缩包ekho-6.3.tar.xz拷贝到该目录。
3. 在ekho目录中新建一个目录install,后续make install会自动将生成的库和头文件等需要部署的内容拷贝到该目录,方便部署到板端。
4. 解压源码压缩包ekho-6.3.tar.xz,tar xvf ekho-6.3.tar.xz
5. 进入解压后的文件夹ekho-6.3
6. 执行./configure --prefix=/xxx/xxx/ekho/install --host=arm-linux --target=arm CC=/xxx/xxx/arm-linux-gnueabihf-gcc CC=/xxx/xxx/arm-linux-gnueabihf-g++ AR=/xxx/xxx/arm-linux-gnueabihf-ar LDFLAGS=-L/xxx/xxx/libsndfile/install/lib CFLAGS=-I/xxx/xxx/libsndfile/install/include CPPFLAGS=-I/xxx/xxx/libsndfile/install/include CXXFLAGS="-DNO_SSE" --without-pulseaudio
6.1 注意,交叉编译工具链的设置要包括ar工具。
6.2 LDFLAGS,CFLAGS,CPPFLAGS包含的目录要包含编译libsndfile时候新建的install中的库的路径和头文件路径
7. 注释掉config.h中的#define malloc rpl_malloc
8. 执行make命令
9. 执行make install命令
10. 将ekho/install/bin目录中的ekho可执行程序拷贝到板端
11. 将ekho/install/share/ekho-data目录拷贝到板端/usr/share目录(ekho-data目录比较大,可以删掉不需要的语言库)
12. 将libsndfile/install/lib目录中的libsndfile.so.1动态库拷贝到板端/lib目录。
13. 执行./ekho -f test.txt -o test.wav即可生成语音文件。test.txt文件中写入要转换的中文,test.wav为生成的语音文件。