coreseek 在gcc 4.9+ 上编译不通过 [sphinxexpr.o] Error 1 错误解决方案

这几天玩hhvm,把gcc环境都装到4.9了,然后编译coreseek的时候就出问题,google一大圈,貌似捕风捉影看到一些信息说是gcc4.7+的c++作用域必须用this->去引用,这里整理一个补丁仅供大家参考
coreseek 在gcc 4.7+ 上编译不通过 [sphinxexpr.o] Error 1 错误解决方案

错误如下:(每个人环境都不太一样,提示错误信息应该不尽相同但出错原因应该都是gcc4.7+以上版本作用域的问题)

sphinxexpr.cpp:1047:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<int>’ are not found by unqualified lookup
sphinxexpr.cpp:1047:43: note: use ‘this->ExprEval’ instead
Makefile:390: recipe for target ‘sphinxexpr.o‘ failed
make[2]: *** [sphinxexpr.o] Error 1
make[2]: Leaving directory ‘/home/lxy/package/coreseek-3.2.14/csft-3.2.14/src‘
Makefile:258: recipe for target ‘all‘ failed
make[1]: *** [all] Error 2
make[1]: Leaving directory ‘/home/lxy/package/coreseek-3.2.14/csft-3.2.14/src‘
Makefile:330: recipe for target ‘all-recursive‘ failed
make: *** [all-recursive] Error 1

解决方案手动修改文件:

编辑sphinxexpr.cpp

将所有的:

T val = ExprEval ( this->m_pArg, tMatch );

替换成

T val = this->ExprEval ( this->m_pArg, tMatch );

保存然后重新编译就ok了!

时间: 2024-10-26 17:48:25

coreseek 在gcc 4.9+ 上编译不通过 [sphinxexpr.o] Error 1 错误解决方案的相关文章

jQuery上传插件Uploadify出现Http Error 302错误解决

前段时间介绍过jquery uploadify上传插件的使用方法,我在使用中遇到过Http Error 302错误问题,应该会有很多人在使用中遇到过,在此记录下来: 首 先http 302是请求被重定向的意思,这就很容易理解了,如果你的uploadify处理上传脚本有session验证,就会出现此错误,因为flash在执行 post请求的时候没有包含cookie信息,而服务器的session会根据客户端的cookie来得到SESSIONID.没有提交cookie自然 就不能获取到session,

android 上传应用商店时出现ERROR getting 错误

最近接手了一个bug,是上传应用商店的时候,部分应用商店会调用aapt工具获取apk信息,在获取信息时会出现以下类似错误. package: name='com.xxx.activity' versionCode='1' versionName='1.0' sdkVersion:'8' targetSdkVersion:'21' application-label:'鎺屼腑搴嗛槼' application-icon-120:'res/drawable-ldpi-v4/ic_launcher.pn

Xcode6在iPhone5+iOS7模拟器上编译,上下有黑边问题的解决方案

问题描述: Xcode6环境下,对iPhone5或iPhone5s模拟器,在iOS7或iOS7.1下运行,屏幕上下有黑边.在iOS8下没问题. 问题分析: 这种熟悉的场景又出现了,上一次遇到这种情景已经可以追溯到两年前,iPhone5刚刚问世的那段时间,在3.5inch屏幕上的程序如果不添加568h的default.png,在4inch屏上运行就会出现这种上下留"白"的状况. 而如今已经到了iPhone6和iPhone6Plus的时代,这种情景竟然又出现了. 其实可以发现,不只是上下留

在Linux CentOS上编译CoreCLR

经过几天的努力,终于解决了在CentOS上编译CoreCLR的问题.最终发现问题是CMAKE_C_FLAGS的设置引起的. 只要在“src/pal/tools/clang-compiler-override.txt”中删除“SET (CMAKE_C_FLAGS_INIT "-Wall -std=c11") ”,在“src/pal/tests/CMakeLists.txt”添加“SET (CMAKE_C_FLAGS "-Wall -std=c11")”,就能编译了.

在CentOS5.5上编译OpenJDK6

几番周折终于在自己的CentOS5.5上编译成功了OpenJDK6,将编译过程和遇到的问题作一简要记录,备查. 0. OpenJDK介绍 OpenJDK是Sun(现Oracle)公司发布的基于GPL许可的Java平台的实现.其优点: 1.它的核心代码与同时期Sun(-> Oracle)的产品版基本上是一样的,血统纯正,不用担心性能问题,也基本上没什么兼容性问题:(代码上最主要的差异是在原本JDK依赖的第三方库上,包括加密库.音频库.字体等.核心部分,也就是HotSpot VM与Java核心库基本

GCC 4.8.2 编译安装

https://my.oschina.net/u/728245/blog/184550 摘要: GCC 4.8.2 在 CentOS 6.5 下编译安装小记,遇到一些问题并解决. 以前从没有升级过GCC,一直用系统默认的GCC版本,最近在研究好久没有用过的 C, 便有了升级GCC的想发,大致如下. 环境: CentOS-6.5-i386 , gcc-4.4.7 系统必须已经安装有一个编译器,因为 gcc 也是需要编译的 首先 gcc 编译需要三个额外库,下载并按照下面的顺序安装它们,如下:1.

gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解

摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C++编译器是集成的,编译一般分为四个步骤: 预处理(preprocessing)  ----------------- cpp/ gcc -E  编译(compilation) ------------------ cc1 / gcc -S 汇编(assembly)  ----------------

【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程

一. C程序编译过程 编译过程简单介绍 : C语言的源文件 编译成 可运行文件须要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (assembly) 得到机器码, 连接 (linking) 得到可运行文件; -- 查看每一个步骤的编译细节 : "-E" 相应 预处理, "-S" 相应 编译, "-c" 相应 汇编, "-O" 相应 连接; -- 每一个步骤

在centOS7.2上编译gcc4.4.7

1.前置 首先,可以参考我的上篇文章,在centOS7.2上编译gcc4.1.2,过程基本一致,这里只对可能遇到的错误情况进行说明. 2.安装texinfo4.8 我的centos7.2版本,自带的是gcc4.8,texinfo 5.1,在编译gcc的过程中主要遇到的是texinfo 5.1版本过高,导致无法处理gcc中的文档,在搜索各种方法无果后,我决定把texinfo降级到4.8(主要是我找到的是4.8,gcc4.4.7中的语法支持的是4.6以上,但是不支持5.x,虽然很奇怪在编译4.1.2