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文件。

  

posted @ 2017-02-07 17:32  斯世轻尘  阅读(1813)  评论(1编辑  收藏  举报