suse11.0下dke环境gcc4.3.1编译starditc
来源:互联网 发布:考研政治题库软件 编辑:程序博客网 时间:2024/05/19 08:43
材料是sf下的stardict的最新包stardict-3.0.1
download address: http://downloads.sourceforge.net/stardict/stardict-3.0.1.tar.bz2
首先configure --disable-festival --disable-espeak(后面两个根据情况选,可以用./configure --help参考有什么选项。好像这两个包是有关音频的,估计装完之后不能发音了)
然后他哗啦哗啦一堆之后如果没有error就可以make了.
如果没有意外,第一个error会卡在src/libsigc++的目录下,
他说
g++ -DHAVE_CONFIG_H -I../.. -I../../src -I../../src/sigc++config -g -O2 -MT signal.o -MD -MP -MF .deps/signal.Tpo -c -o signal.o signal.cc
In file included from signal.cc:20:
../../src/sigc++/signal.h:1675: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal0<T_return, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:1784: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal1<T_return, T_arg1, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:1895: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal2<T_return, T_arg1, T_arg2, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2008: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal3<T_return, T_arg1, T_arg2, T_arg3, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2123: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil, sigc::nil, sigc::nil> > sigc::signal4<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2240: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil, sigc::nil> > sigc::signal5<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2359: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil> > sigc::signal6<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil> >’
../../src/sigc++/signal.h:2480: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7> > sigc::signal7<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7> >’
这个是gcc4.3之后的bug或者应该这样说是gcc4.3优化了一些东西以至不支持sigc++的这个代码
换编译期很烦的,于是修改源码
在把src/sing++/signal.h第21行注释掉
// #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
再make 再error,这回他说:
error: ‘auto_ptr’ is not a member of ‘std’
这个也是gcc4.3.1的bug,
只要在相应的cpp文件前面加上一句
#include <memory>
就应该能够度过此劫
之后会有一些什么像 error: 'strcmp' was not declared in this scope 之类的小逻逻级别的error
只要在相应的cpp加上下面两行的头文件就行了,
#include <string.h>
#include <stdlib.h>
安装这玩意还真费劲
手工加头文件贼多,是一件体力活
修改源代码更让人烦,哎呀,对哦,还是把改好的文件上传吧,免得日后在装又要烦死了。
download address: http://downloads.sourceforge.net/stardict/stardict-3.0.1.tar.bz2
首先configure --disable-festival --disable-espeak(后面两个根据情况选,可以用./configure --help参考有什么选项。好像这两个包是有关音频的,估计装完之后不能发音了)
然后他哗啦哗啦一堆之后如果没有error就可以make了.
如果没有意外,第一个error会卡在src/libsigc++的目录下,
他说
g++ -DHAVE_CONFIG_H -I../.. -I../../src -I../../src/sigc++config -g -O2 -MT signal.o -MD -MP -MF .deps/signal.Tpo -c -o signal.o signal.cc
In file included from signal.cc:20:
../../src/sigc++/signal.h:1675: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal0<T_return, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:1784: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal1<T_return, T_arg1, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:1895: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal2<T_return, T_arg1, T_arg2, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, sigc::nil, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2008: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil> > sigc::signal3<T_return, T_arg1, T_arg2, T_arg3, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, sigc::nil, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2123: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil, sigc::nil, sigc::nil> > sigc::signal4<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, sigc::nil, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2240: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil, sigc::nil> > sigc::signal5<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, sigc::nil, sigc::nil> >’
../../src/sigc++/signal.h:2359: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil> > sigc::signal6<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, sigc::nil> >’
../../src/sigc++/signal.h:2480: error: declaration of ‘typedef struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7> > sigc::signal7<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7, T_accumulator>::slot_list’
../../src/sigc++/signal.h:168: error: changes meaning of ‘slot_list’ from ‘struct sigc::slot_list<sigc::slot<T_return, T_arg1, T_arg2, T_arg3, T_arg4, T_arg5, T_arg6, T_arg7> >’
这个是gcc4.3之后的bug或者应该这样说是gcc4.3优化了一些东西以至不支持sigc++的这个代码
换编译期很烦的,于是修改源码
在把src/sing++/signal.h第21行注释掉
// #define SIGC_TYPEDEF_REDEFINE_ALLOWED 1
再make 再error,这回他说:
error: ‘auto_ptr’ is not a member of ‘std’
这个也是gcc4.3.1的bug,
只要在相应的cpp文件前面加上一句
#include <memory>
就应该能够度过此劫
之后会有一些什么像 error: 'strcmp' was not declared in this scope 之类的小逻逻级别的error
只要在相应的cpp加上下面两行的头文件就行了,
#include <string.h>
#include <stdlib.h>
安装这玩意还真费劲
手工加头文件贼多,是一件体力活
修改源代码更让人烦,哎呀,对哦,还是把改好的文件上传吧,免得日后在装又要烦死了。
- suse11.0下dke环境gcc4.3.1编译starditc
- SUSE11下编译Subversion客户端
- SUSE11下编译Subversion客户端
- linux下编译gcc4
- GCC4.7下crypto++编译报错
- 在centos6.2下编译gcc4.7
- centos 6 下编译gcc4.8.3
- UBUNTU 12.04下编译安装 GCC4.1.2
- mac os下编译gcc4.9.2
- linux(Centos)下编译安装gcc4.8.2
- SUSE11环境下Redis+Keepalived实现高可用技术
- SUSE11安装NginxMongoSybasePHP环境
- linux0.11源代码在gcc4.3.x gcc4.4.x下编译bochs下模拟
- ubuntu14.04配置arm-linux-gcc4.4.3交叉编译环境
- vs2010和gcc4.4.7、gcc4.7.0下C++类模板的编译方法
- SUSE11下安装JDK6
- SUSE11下安装JDK6
- SUSE11下安装weblogic12
- Fedora9完全配置
- 开博第一篇~
- RS232接口与RS485接口的区别
- 跟我一起写 Makefile(一)
- C++ Primer读书笔记
- suse11.0下dke环境gcc4.3.1编译starditc
- from VOA special English
- MarkerManager and Sidebar
- 汇编指令
- Hook API
- API 线程 异常
- WTL
- jbpm的调度应用
- Web打印