mac安装php分词工具xunsearch出现找不到bio.h的解决办法
下载xunsearch后安装出现如下错误,在xunsearch官方论坛未找到答案,此方案不仅用于参考解决安装xunsearch,其它编辑安装出现的问题同样可以参考
-n Checking scws ... 1.2.3 -n Checking scws dict ... ok -n Checking libuuid ... yes: /usr -n Checking xapian-core-scws ... 1.2.22 -n Checking libevent ... no Installing libevent (2.0.21-stable) ... Extracting libevent package ... Configuring libevent ... Compiling & installing libevent ... ----- libtool: link: ( cd ".libs" && rm -f "libevent_pthreads.la" && ln -s "../libevent_pthreads.la" "libevent_pthreads.la" ) /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I./compat -I./include -I./include -O2 -Wall -fno-strict-aliasing -Wno-deprecated-declarations -D_THREAD_SAFE -MT bufferevent_openssl.lo -MD -MP -MF .deps/bufferevent_openssl.Tpo -c -o bufferevent_openssl.lo bufferevent_openssl.c libtool: compile: gcc -DHAVE_CONFIG_H -I. -I./compat -I./include -I./include -O2 -Wall -fno-strict-aliasing -Wno-deprecated-declarations -D_THREAD_SAFE -MT bufferevent_openssl.lo -MD -MP -MF .deps/bufferevent_openssl.Tpo -c bufferevent_openssl.c -fno-common -DPIC -o .libs/bufferevent_openssl.o bufferevent_openssl.c:60:10: fatal error: 'openssl/bio.h' file not found #include <openssl/bio.h>
最后说的很清楚,找不到openssl/bio.h文件。也就是bufferevent_openssl.c文件里的第60行#include <openssl/bio.h>要引入头文件,既然没找到这个文件,我们需要看看bio.h文件在哪个位置,然后引入。
sh-3.2# find / -name -type f bio.h /usr/local/Cellar/openssl/1.0.1l/include/openssl/bio.h
打到bio.h文件之后,我们再让文件编辑时找到它,建立一个软链接
//如果没有/usr/local/include文件夹,则建一个include文件夹 sudo ln -s /usr/local/Cellar/openssl/1.0.1l/include/openssl/ /usr/local/include/openssl
为什么要将软链接建在/usr/local/include目录下,网上很解决方案,但未说明为什么要在这个目录下建立软链接,这里给未学过c的说一下,
1.include<头文件名>和include"头文件名"
如:include和include"stdio.h"
前者(使用<>),来引用stdio.h文件,是首先检索标准路径,看看这些文件夹下是否有该头文件;如果没有,也不会检索当前文件所在路径,并将报错。
后者(使用""),来引用stdio.h文件,是首先检索文件的当前路径;如果没有,再检索标准路径,看看这些文件夹下是否有该头文件。
2.linux下,上述标准路径有:/usr/include,/usr/local/include。
3.。如,等。其中,前面的字符串(如sys,net)表示标准路径下的文件夹名,后面的字符串(如io.h,ethernet.h),表示在linux标准路径下的各文件夹下的头文件名,如sys文件夹下的io.h文件,即我们可以在/usr/include/sys目录下发现io.h文件。