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

      

  • 相关阅读:
    .Net Micro Framework中文讨论组
    .Net Micro Framework 4.0正式开源
    php论坛学习的一个遍历的问题(学习) 简单
    Visual C++ 2008入门经典 第十章标准模板库(二) 简单
    PHP类型转换&&类型强制转换 简单
    Visual C++ 2008入门经典 第九章练习题 简单
    Visual C++ 2008入门经典 第十章标准模板库 简单
    PHP服务端推送技术Long Polling 简单
    Visual C++ 2008入门经典 第九章类的继承和虚函数(三) 简单
    正则表达式学习一 简单
  • 原文地址:https://www.cnblogs.com/xuxiang/p/6375169.html
Copyright © 2020-2023  润新知