`

【转】Coreseek在GCC 4.7上编译不通过的问题

阅读更多

 

       问题解决记录,原文地址:http://vifix.cn/blog/coreseek-cant-make-in-gcc-4-7-enviroment.html

    

 

      今天在archlinux在安装coreseek 4.1-beta时碰到的问题,在g++编译sphinxexpr.cpp时:

 

g++ -DHAVE_CONFIG_H -I. -I../config  -DSYSCONFDIR="\"/opt/coreseek-3.2.14/etc\"" -DDATADIR="\"/opt/coreseek-3.2.14/var/data\"" -I/usr/local/include -pthread -I/usr/include/mysql -fPIC -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -DBIG_JOINS=1 -fomit-frame-pointer  -g  -I/opt/mmseg-3.2.14/include/mmseg/   -Wall -g -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG -MT sphinxexpr.o -MD -MP -MF .deps/sphinxexpr.Tpo -c -o sphinxexpr.o sphinxexpr.cpp
sphinxexpr.cpp: In constructor ‘ExprParser_t::ExprParser_t(CSphSchema*, ISphExprHook*)’:
sphinxexpr.cpp:742:17: warning: ‘ExprParser_t::m_pExtra’ will be initialized after [-Wreorder]
sphinxexpr.cpp:711:19: warning:   ‘ISphExprHook* ExprParser_t::m_pHook’ [-Wreorder]
sphinxexpr.cpp:698:2: warning:   when initialized here [-Wreorder]
sphinxexpr.cpp: In instantiation of ‘int Expr_In_c<T>::IntEval(const CSphMatch&) const [with T = float]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1823:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1823:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<float>’ are not found by unqualified lookup
sphinxexpr.cpp:1823:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_In_c<T>::IntEval(const CSphMatch&) const [with T = long long int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1823:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1823:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<long long int>’ are not found by unqualified lookup
sphinxexpr.cpp:1823:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_In_c<T>::IntEval(const CSphMatch&) const [with T = int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1823:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1823:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<int>’ are not found by unqualified lookup
sphinxexpr.cpp:1823:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_Interval_c<T>::IntEval(const CSphMatch&) const [with T = float]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1777:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1777:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<float>’ are not found by unqualified lookup
sphinxexpr.cpp:1777:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_Interval_c<T>::IntEval(const CSphMatch&) const [with T = long long int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1777:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1777:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<long long int>’ are not found by unqualified lookup
sphinxexpr.cpp:1777:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_Interval_c<T>::IntEval(const CSphMatch&) const [with T = int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1777:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1777:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<int>’ are not found by unqualified lookup
sphinxexpr.cpp:1777:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_IntervalConst_c<T>::IntEval(const CSphMatch&) const [with T = float]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1746:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1746:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<float>’ are not found by unqualified lookup
sphinxexpr.cpp:1746:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_IntervalConst_c<T>::IntEval(const CSphMatch&) const [with T = long long int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1746:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1746:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<long long int>’ are not found by unqualified lookup
sphinxexpr.cpp:1746:43: note: use ‘this->ExprEval’ instead
sphinxexpr.cpp: In instantiation of ‘int Expr_IntervalConst_c<T>::IntEval(const CSphMatch&) const [with T = int]’:
sphinxexpr.cpp:3152:1:   required from here
sphinxexpr.cpp:1746:43: error: ‘ExprEval’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
sphinxexpr.cpp:1746:43: note: declarations in dependent base ‘Expr_ArgVsSet_c<int>’ are not found by unqualified lookup
sphinxexpr.cpp:1746:43: note: use ‘this->ExprEval’ instead
make[2]: *** [sphinxexpr.o] Error 1
make[2]: Leaving directory `/home/mac/Downloads/coreseek-4.1-beta/csft-4.1/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/mac/Downloads/coreseek-4.1-beta/csft-4.1/src'
make: *** [all-recursive] Error 1

 

 

      在替换为coreseek 3.2.13后仍然发生了类似问题,但是在自己的Mac OS X 10.6.8上类似的编译却没有碰到这个问题,于是觉得很奇怪。

 

      搜索之后,仅找到一个有用的链接:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667378,是关于coreseek上游的sphinx的同样问题的,看了一下了解似乎是gcc 4.7的C++作用域的问题(?),上面的debian bugs里面提供了一个patch,看了下patch的内容,也对自己本地的coreseek的制作了同样的补丁,压缩包发布如下,使用时注意版本。见附件~

 

分享到:
评论

相关推荐

    可以在CentOS 8 下编译的coreseek 4.1

    在编译过程中,可能会遇到一些问题,比如版本不兼容或者库文件找不到。如果出现错误,需要根据错误信息查找解决方案,可能需要升级某些库或者修改配置选项。例如,如果遇到Boost库的问题,可能需要手动安装特定版本...

    Coreseek在ubuntu系统上补丁

    Coreseek是一款基于全文搜索引擎Sphinx进行二次开发的...总的来说,这个补丁包是针对Coreseek在Ubuntu系统上的编译问题提供解决方案,通过应用这些补丁,用户可以更顺利地在Linux环境中搭建和使用Coreseek搜索引擎。

    coreseek-4.1-beta.tar.gz

    之前上传的coressek-3.2.14在我的centos上编译通不过。百度了下,说是不兼容GCC4.7。 又找了个coreseek-4.1,但是又遇到不能生成configure文件。再百度找到解决方案。修改完,重新打了个包。供下载。

    coreseek4.1 编译安装和实时索引配置

    如果在编译过程中遇到错误,如找不到某些库或头文件,应按照错误提示安装相应的开发包。 安装完成后,我们需要配置Coreseek。主要的配置文件为`csft.conf`,这是一个基于文本的配置文件,包含服务器的各种设置,如...

    官网不能下,这里可以下载coreseek-3.2.14-.tar.gz

    Coreseek是一款基于Sphinx搜索引擎的中文分词和全文检索解决方案,它在Sphinx的基础上增加了中文支持,使得在处理中文数据时能有更好的效果。这个压缩包"coreseek-3.2.14-.tar.gz"包含了Coreseek的源代码,允许用户...

    coreseek-4.1.tar.gz

    CoreSeek则是在Sphinx的基础上,针对中文环境做了优化,集成了MMSEG中文分词算法,能够更好地处理中文文本的索引和搜索。MMSEG(Maximum Match Segmentation)是一种常见的中文分词方法,它以最长匹配为基础,结合了...

    coreseek-3.2.14版,还有centos7上面的补丁.

    coreseek中文索引. gcc 版本高于 4.7 造成的安装不成功,有补丁下载.

    Coreseek MySQL 数据源在 CentOS 下的安装

    根据文档描述,本章节详细介绍了如何在 CentOS 操作系统上为 Coreseek 安装做好环境准备,包括必要的编译工具和其他依赖库。 - **编译工具与依赖库**:确保 CentOS 已安装了 GCC 编译工具链以及其他必要的开发工具...

    centos 6.5安装coreseek,亲测ok

    在本文中,我们将深入探讨如何在CentOS 6.5操作系统上成功安装CoreSeek,一个基于Sphinx搜索引擎的全文检索引擎。CoreSeek以其高度可定制性、高效性能和丰富的功能特性,广泛应用于各类数据检索场景。 一、CoreSeek...

    sphinx/coreseek权威手册中文版

    Coreseek在Sphinx的基础上增加了对中文的支持和优化,使得在海量文本数据中进行中文搜索变得高效且便捷。 - 特性包括:实时索引、布尔查询、短语查询、模糊查询、同义词扩展、排序、分页、权重计算等。此外,它还...

    coreseek安装

    【Coreseek 安装】 Coreseek 是一个专为中国市场设计的全文检索和搜索软件,它基于Sphinx技术,但能够独立运行。...通过以上步骤,Coreseek能够在服务器上成功安装并运行,为企业提供高效、精确的中文搜索服务。

    coreseek-3.2.14-win32

    2. **库文件**:包含了必要的动态链接库(DLL)和静态库,这些文件是运行和编译CoreSeek应用程序所必需的。 3. **开发工具和API**:可能包括开发者接口文档、示例代码和API头文件,使得开发人员能够集成CoreSeek到...

    coreseek搜索服务1

    2. **安装与配置**:讲解如何在不同操作系统(如Linux)上安装CoreSeek,配置其核心参数,如数据源设置、索引构建、搜索服务端口等。 3. **中文分词**:CoreSeek内置了中文分词器,介绍如何配置和使用这些分词器,...

    coreseek站内搜索

    - **全文索引**:通过建立高效的倒排索引,CoreSeek能够在短时间内完成大量文本的搜索,显著提升搜索速度。 - **实时更新**:支持实时索引更新,确保新添加的数据能够快速被搜索引擎抓取并展示。 - **多种接口**...

    sphinx+coreseek安装配置

    Sphinx和CoreSeek是两种强大的全文搜索引擎技术,尤其在处理大量数据的检索和高效率搜索时表现卓越。它们常被用于网站、数据库和其他需要快速、精确搜索功能的应用中。本文将详细介绍如何在Linux环境中安装和配置...

    coreseek的demo 20141224修改

    在http://www.cnblogs.com/strick/p/4173757.html这篇博客文章中,作者详细介绍了如何配置和安装20141224版的CoreSeek,包括环境准备、源码下载、编译安装、配置文件设置、数据导入以及启动服务等步骤,对于初学者来...

    coreseek-3.2.13.tar.gz

    10. **社区支持**:作为开源项目,Coreseek拥有活跃的社区,用户可以在论坛、邮件列表等平台上获取技术支持和交流经验。 总的来说,"coreseek-3.2.13.tar.gz"是一个包含全面功能的全文检索引擎软件包,适用于需要...

    coreseek3.1.14

    在CoreSeek3.1.14版本中,我们主要关注以下几个关键知识点: 1. **核心组件**:CoreSeek的核心组件包括搜索服务、索引构建工具以及相关的管理工具。这些组件协同工作,使得用户能够高效地对大量文本数据进行全文...

    Coreseek XML 数据源在 CentOS 下的安装

    在安装 Coreseek 之前,确保 CentOS 操作系统已经安装了必要的编译环境,例如 `gcc` 和其他相关工具。这些工具是编译安装过程中必需的。 **具体步骤:** 1. **检查环境:** - 首先,通过命令行确认 CentOS 是否已...

    coreseek4.1 for window

    同时,监控和日志功能也是必不可少的,它们可以帮助我们及时发现并解决问题,保证系统的稳定运行。 总的来说,CoreSeek4.1为Windows环境下的中文全文检索提供了一套强大且易用的解决方案。通过深入理解其核心原理和...

Global site tag (gtag.js) - Google Analytics