ekho移植到arm环境(Ubuntu)

china_qhope 发布于 2014/09/03 16:39
阅读 2K+
收藏 0

@黄冠能 你好,想跟你请教个问题:

您好,今天看了一天关于ekho的相关资料,最后还是又有解决不了的问题,还是想求您给个指导意见。

我想把这个ekho移植到tslib下的arm环境下。可是遇到了两个问题:

1.由于arm环境下,./configure CC需要arm-linux-gcc工具链。可是我在Makefile中,和./configure前都修改了命令。但是编译还是没有将gcc变成arm下的编译工具

2.在csdn上看到介绍Ekho的文章。下面有个哥们回复,说arm板移植的时候,make一步出现了错误提示是无法识别的寄存器名。

请问,ekho能否移植到arm板上呢?

加载中
0
china_qhope
china_qhope

问题1已经解决了.

问题2我遇到后将报错的地方(提示arm-linux-gcc识别不了asm关键字下的%cx等),define了一个宏,让程序不走会变代码(我也不知道这段代码干什么用的,没仔细看)。

后来又遇到了需要自己交叉编译sndfile.a等

但是最后还是卡在了一个地方。提示如下log

configure: WARNING: unrecognized options: --without-pulseaudio
root@edo-desktop:/home/rootfs/ekho-5.7# make
make  all-am
make[1]: 正在进入目录 `/home/rootfs/ekho-5.7'
arm-linux-g++ -DHAVE_CONFIG_H -I.    -I./utfcpp/source -I./sonic   -I./sr-convert -DOUTPUT16BIT -D_`uname -p` -pthread  -g -O2 -O0 -MT libekho_a-ekho_dict.o -MD -MP -MF .deps/libekho_a-ekho_dict.Tpo -c -o libekho_a-ekho_dict.o `test -f 'src/ekho_dict.cpp' || echo './'`src/ekho_dict.cpp
In file included from src/character.h:27,
                 from src/ekho_dict.h:25,
                 from src/ekho_dict.cpp:27:
src/phonetic_symbol.h: In member function 'const char* ekho::PhoneticSymbol::getPcm(const char*, const char*, int&, SF_INFO&)':
src/phonetic_symbol.h:129: error: 'SF_FORMAT_VORBIS' was not declared in this scope
src/ekho_dict.cpp: In member function 'int ekho::Dict::getSymbolCode(ekho::SymbolLetter*, const char*)':
src/ekho_dict.cpp:859: error: 'rpl_malloc' was not declared in this scope
src/ekho_dict.cpp:869: error: 'rpl_malloc' was not declared in this scope
make[1]: *** [libekho_a-ekho_di



不知道怎么解决了。黄老师,快出现把。。

0
黄冠能
黄冠能

Ekho应该不能简单地通过configure完成arm的移植,至少我自己没有做过。如果要移植就得先把依赖的软件移植。我把Ekho移植到Android平台时是重新编写Makefile的。

SF_FORMAT_VORBIS是在sndfile库里定义的,你看是不是少了引用头文件。

rpl_malloc函数我没有印象,是不是你自己改的?

你使用了--without-pulseaudio参数会令到ekho不能直接发声,只可以使用生成音频文件的功能。

0
陈兵强
您好我在ARM平台安装Ekho,报错
/sr-convert/sr-convert.cpp:318:4: error: unknown register name ‘%ebx’ in ‘asm’
./sr-convert/sr-convert.cpp:318:4: error: unknown register name ‘%eax’ in ‘asm’
Makefile:832: recipe for target 'src/libekho_a-libekho.o' failed
make[1]: *** [src/libekho_a-libekho.o] Error 1
make[1]: Leaving directory '/root/ekho-6.0'
Makefile:441: recipe for target 'all' failed
make: *** [all] Error 2
0
陈明华
陈明华
./configure CXXFLAGS="-DNO_SSE"  就不会报错了。
0
china_qhope
china_qhope
谢谢黄老师的解答。
0
c
caogos
报错误

src/ekho_dict.cpp:859: error:'rpl_malloc'was not declared inthisscope

src/ekho_dict.cpp:869: error:'rpl_malloc'was not declared inthisscope

的解决办法是,把文件"config.h"中如下宏定义注释掉

#define malloc rpl_malloc

注意:由于文件“config.h”是执行"./configure ...."自动生成的,所以每次重新执行后都要重新修改。


0
卢世亮
问题1解决了。说出来,大家分享一下。你解决了就不说了。别人都停留在第一步,怎么跟你一起探讨第二步。
0
随风潇洒6894336
请问第一步交叉编译怎么解决的? 我自己编译了一个sndfile,用arm-linux-gcc 但是总是报configure: error: sndfile test failed


配置命令为  ./configure --host=arm-linux CC=arm-linux-gcc --without-pulseaudio  


返回顶部
顶部