yanyiwu / cppjieba

"结巴"中文分词的C++版本
MIT License
2.61k stars 690 forks source link

独立出 jiebalib 的建议 #25

Closed falood closed 10 years ago

falood commented 10 years ago

最近想基于 cppjieba 写一个 Erlang 的接口 ,发现如下问题

  1. std_outbound.hpp 中 <tr1/unordered_map> 依赖问题
  2. cppjieba 中集成了多种格式编码的字典文件、web服务器及 daemon script 等模块

所以暂时用 nodejieba 的代码构建了项目。 因此有以下建议:

独立出一个最小化的 jiebalib 项目,去除依赖,只提供引擎功能

yanyiwu commented 10 years ago
  1. std_outbound的依赖问题是什么意思?是编译器依赖吗?正常来说除非特别低级的编译器,都没有问题才对。使用的都是标准库的东西。
  2. 这个好理解,这里不够简洁,我找时间着手弄一下。
falood commented 10 years ago
[  9%] Building CXX object src/CMakeFiles/cjsegment.dir/segment.cpp.o
In file included from /Volumes/Z/Codes/source/cppjieba/src/segment.cpp:5:
In file included from /Volumes/Z/Codes/source/cppjieba/src/Limonp/ArgvContext.hpp:11:
In file included from /Volumes/Z/Codes/source/cppjieba/src/Limonp/str_functs.hpp:24:
/Volumes/Z/Codes/source/cppjieba/src/Limonp/std_outbound.hpp:10:10: fatal error:
      'tr1/unordered_map' file not found
#include <tr1/unordered_map>
         ^
1 error generated.
make[2]: *** [src/CMakeFiles/cjsegment.dir/segment.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/cjsegment.dir/all] Error 2
make: *** [all] Error 2

我还是帖一下日志吧

补充一下,我在 Mac 下,编译器是 clang

yanyiwu commented 10 years ago

nice。编译器是?大概猜是编译器太前沿了,抛弃了tr1这个库(不过我在g++ 4.7.2上测试也正常,纳闷。)。 解决方法是增加编译选项 -std=c++0x 或者 -std=c++11

具体做法是修改项目根目录下的CMakeLists.txt这个文件的第八行。 把ADD_DEFINITIONS(-O3 -Wall -g) 修改成 ADD_DEFINITIONS(-O3 -Wall -g -std=c++0x)

falood commented 10 years ago

多谢 @aszxqw ,这个选项可以解决当前问题,但因为 Mac 下没有 epoll,会引发下面的问题

In file included from /Volumes/Z/Codes/source/cppjieba/src/server.cpp:8:
/Volumes/Z/Codes/source/cppjieba/src/Husky/EpollServer.hpp:17:10: fatal error:
      'sys/epoll.h' file not found
#include <sys/epoll.h>

所以我才会建议新建一个 jiebalib 的项目,因为这些脚本类的代码直接删了也不太合适,毕竟很多地方还可以会用到这些脚本

yanyiwu commented 10 years ago

好的。之前确实没有意识到这个问题,谢谢你的提醒。

falood commented 10 years ago

:D

yanyiwu commented 10 years ago

独立的lib在右边 https://github.com/aszxqw/libcppjieba

falood commented 10 years ago

https://github.com/falood/exjieba 项目已经在用 libcppjieba 了,多谢!

aijianiula0601 commented 7 years ago

libcppjieba怎么配置到cppjieba-master呢?