ekho移植到arm环境(Ubuntu)

分类: 嵌入式 |
10月16日,OSC源创会走进重庆,不见不散!>>>
»
@黄冠能 你好,想跟你请教个问题:
您好,今天看了一天关于ekho的相关资料,最后还是又有解决不了的问题,还是想求您给个指导意见。
我想把这个ekho移植到tslib下的arm环境下。可是遇到了两个问题:
1.由于arm环境下,./configure CC需要arm-linux-gcc工具链。可是我在Makefile中,和./configure前都修改了命令。但是编译还是没有将gcc变成arm下的编译工具链。
2.在csdn上看到介绍Ekho的文章。下面有个哥们回复,说arm板移植的时候,make一步出现了错误提示是无法识别的寄存器名。
请问,ekho能否移植到arm板上呢?
按票数排序 显示最新答案
共有8个答案 (最后回答: 1年前 )
-
0
-
问题1已经解决了.
问题2我遇到后将报错的地方(提示arm-linux-gcc识别不了asm关键字下的%cx等),define了一个宏,让程序不走会变代码(我也不知道这段代码干什么用的,没仔细看)。
后来又遇到了需要自己交叉编译sndfile.a等
但是最后还是卡在了一个地方。提示如下log
1234567891011121314configure: 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 ‘�x’ in ‘asm’
./sr-convert/sr-convert.cpp:318:4: error: unknown register name ‘�x’ 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
-
谢谢黄老师的解答。
-
0
-
报错误
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
-
请问第一步交叉编译怎么解决的? 我自己编译了一个sndfile,用arm-linux-gcc 但是总是报configure: error: sndfile test failed
配置命令为
./configure --host=arm-linux CC=arm-linux-gcc --without-pulseaudio
1.
解决方法:./configure --host=arm-linux CC=arm-linux-gcc ......
2. error:'rpl_malloc'was not declared inthisscope
解决方法:把文件"config.h.in"中如下宏定义注释掉//#undef malloc
3. make一步出现了错误提示是无法识别的寄存器名:
解决方法:./configure CXXFLAGS="-DNO_SSE"
4. --without-pulseaudio