我想在android中使用this library所以,我跟着this guide,我认为我应该怎么做才能使用它
因此,我安装了NDK并按照this guide和this设置Android Studio以编译source code。
这是在模块的android.ndk
build.gradle
部分进行设置
android.ndk {
moduleName = "MeCab"
stl = "stlport_shared"
}
当我编译(Make Project)之后,报告了很多错误,几乎所有错误都是error: 'xxx' has not been declared
和一些error: ... has incomplete type
我认为这是因为#ifdef HAVE_*
根本不起作用,我试图删除#ifdef HAVE_*
并直接包含头文件然后编译以查看错误是否修复后的结果。
结果是我直接在mmap.h中加载了<sys/stat.h>
,<fcntl.h>
,utils.h中的<stdint.h>
,utils.cpp中的<dirent.h>
}和param.cpp中的<cctype>
(我可能会忘记一些),并且每个error: 'xxx' has not been declared
和error: ... has incomplete type
都不会再次显示。
第一个问题:我是否使用正确的解决方案来修复它?
上述错误报告的其他错误是
在dictionary.cpp error: 'DIC_VERSION' was not declared in this scope
中
在param.cpp error: 'PACKAGE' was not declared in this scope
和error: 'VERSION' was not declared in this scope
中
在tagger.cpp error: 'VERSION' was not declared in this scope
中
在utils.cpp error: 'MECAB_DEFAULT_RC' was not declared in this scope
我在Makefile.in中找到了这些变量,在configure中找到了值为mmap.h的变量,但我不知道这些文件与源代码中的变量有什么关系。
第二个问题:如何解决这些错误?
消息Gradle Build中未报告上一个错误,但在How to install(Japanese)
中用红线加下划线...
const T* begin() const { return text; }
T* end() { return text + size(); }
const T* end() const { return text + size(); }
size_t size() { return length/sizeof(T); }
...
在size()
中const T* end() const { return text + size(); }
说Non-const function 'size()' is called from const function
,我认为这似乎无法从C#中的静态上下文引用实例字段,但在这种情况下应该如何我解决了吗?**我认为这不是作者的错误。
我不知道这是一个有用的信息,它是official document(Japanese at the end of file)
要求
- C ++编译器(g ++ 3.4.3或VC7)
- iconv(libiconv):用于转换字典
安装
它可以按照与一般免费软件相同的程序安装 %tar zxfv mecab-X.X.tar.gz% cd mecab-X.X % ./configure % make % make check % su # make install
字典安装
% tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz % mecab-ipadic-2.7.0-XXXX % ./configure % make % su # make install
如何从https://developer.mozilla.org/de/docs/Web/API/Document/write
进行编译的Unix
% cc -O2 `mecab-config --cflags` example.c -o example \ `mecab-config --libs`
视窗
为了编译复制包括\ mecab.h,bin \ libmecab.dll&gt; lib \ libmecab.lib
cygwin / mingw环境% gcc -DDLL_IMPORT -I. example.c -o example.exe libmecab.dll
VC ++环境
% cl -DDLL_IMPORT -I. example.c libmecab.lib
我正在使用Windows 10,Android Studio 1.4,NDK r10e