libevent 在linux下编译链接问题
libevent交叉编译
libevent交叉编译libevent是一个高性能事件通知库,可以用于开发网络应用程序。
本文将介绍如何在Linux环境下进行libevent的交叉编译。
步骤如下:1. 安装交叉编译工具链首先需要安装交叉编译工具链,以便编译出适用于目标平台的代码。
例如,如果要编译ARM架构的代码,需要安装ARM架构的交叉编译工具链。
2. 下载libevent源码可以从libevent的官网下载最新的源码包。
下载完成后,解压缩至本地目录。
3. 配置交叉编译环境在终端中执行以下命令:```export CC=arm-linux-gnueabi-gccexport CXX=arm-linux-gnueabi-g++export LD=arm-linux-gnueabi-ldexport AR=arm-linux-gnueabi-arexport TARGET=arm-linux-gnueabi```其中CC、CXX、LD和AR分别指定交叉编译工具链的编译器、链接器和静态库生成工具。
TARGET指定目标平台的架构。
4. 编译libevent在终端中执行以下命令:```./configure --host=$TARGET --prefix=$PWD/buildmakemake install```其中--host指定目标平台的架构,--prefix指定编译结果的安装路径。
5. 使用编译结果编译完成后,在build目录下可以找到编译出的libevent库和头文件。
将其拷贝到目标平台的相应路径下,即可在目标平台上使用libevent库。
以上就是libevent的交叉编译步骤。
需要注意的是,不同目标平台的交叉编译步骤可能会略有不同。
如果遇到问题,可以参考交叉编译工具链的文档或者libevent的官方文档。
libevent evthread_use_pthreads -回复
libevent evthread_use_pthreads -回复libevent是一个开源的事件驱动网络库,它提供了一个高效的跨平台的事件驱动模型,用于构建可扩展的网络应用程序。
evthread_use_pthreads 是libevent库中的一个函数,它用于设置使用pthread线程库作为底层的多线程实现。
本文将深入探讨libevent库及其事件驱动模型以及evthread_use_pthreads函数的作用和用法。
一、libevent库和事件驱动模型简介libevent是一个轻量级、高性能、事件驱动的网络库,最初由Nick Mathewson于2000年开发,并在2002年发布。
它的设计目标是提供一个统一的、跨平台的接口,用于处理网络事件和I/O操作,以支持高并发的网络应用程序。
libevent库可以在多个操作系统上运行,包括Windows、Linux、BSD等。
libevent采用了事件驱动的编程模型,通过使用异步的、非阻塞的I/O操作和事件回调机制来处理网络事件。
在传统的阻塞式I/O模型中,每个连接都需要一个独立的线程或进程来处理,当同时有大量的连接时,会消耗大量的系统资源。
而在事件驱动模型中,通过一个主循环不断监听和分发事件,将连接的处理交给事件回调函数,可以大大提高系统的吞吐量和性能。
二、libevent库的特性和用途1. 高性能:libevent采用非阻塞I/O和事件回调机制,能够处理大量的并发连接,实现高性能的网络应用程序。
2. 跨平台:libevent可以在多个操作系统上运行,包括Windows、Linux、BSD、macOS等。
3. 支持多种网络协议:libevent支持多种常用的网络协议,如TCP、UDP、HTTP等,能够满足不同类型的网络应用需求。
4. 支持定时器:libevent提供了定时器功能,可以方便地实现定时任务的调度和执行。
5. 可扩展性:libevent的设计模式允许用户自定义事件源和事件处理器,以满足复杂应用的需求。
在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对,遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.所以安装共享库后要注意共享库路径设置问题, 如下:1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf 内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" >> /etc/ld.so.conf# ldconfig3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.4)如果程序需要的库文件比系统目前存在的村文件版本低,可以做一个链接比如:error while loading shared libraries: libncurses.so.4: cannot open sharedobject file: No such file or directoryls /usr/lib/libncu*/usr/lib/libncurses.a /usr/lib/libncurses.so.5/usr/lib/libncurses.so /usr/lib/libncurses.so.5.3可见虽然没有libncurses.so.4,但有libncurses.so.5,是可以向下兼容的建一个链接就好了ln -s /usr/lib/libncurses.so.5.3 /usr/lib/libncurses.so.4。
linux event机制
linux event机制Linux是一种开源的操作系统,具有高度的可定制性和灵活性。
在Linux中,event机制是一种重要的机制,它被广泛应用于各种应用程序和系统内核中。
本文将重点介绍Linux event机制的原理、应用和优势。
我们来了解一下event的概念。
在计算机科学领域,event通常指的是一种特定的事物或者行为,它可以触发某些操作或者改变系统的状态。
在Linux中,event可以是用户的输入、系统的信号、硬件的中断等等。
通过对这些event的监听和处理,我们可以实现各种功能和操作。
在Linux中,event机制的实现主要依赖于两个重要的组件:事件源和事件处理器。
事件源可以是用户的输入设备、网络数据包、系统的信号等等。
事件处理器则负责监听和处理这些event,根据不同的event类型执行相应的操作。
事件处理器可以是用户空间的应用程序,也可以是系统内核中的模块。
Linux event机制的核心是事件循环。
事件循环是一个无限循环,不断地监听event的发生并作出相应的处理。
在每一次循环中,事件处理器会检查是否有新的event发生,如果有,则执行相应的操作。
如果没有新的event发生,事件处理器会进入休眠状态,直到有新的event触发。
在Linux中,event机制的应用非常广泛。
例如,在图形界面应用程序中,我们经常使用事件监听和处理机制来实现用户的交互功能。
当用户点击按钮或者输入文字时,事件处理器会监听到相应的event,并执行相应的操作。
另外,event机制也被广泛应用于网络编程中。
通过监听网络数据包的到达,我们可以实现网络通信和数据传输的功能。
Linux event机制的优势主要体现在以下几个方面。
首先,由于event机制是基于事件驱动的,因此可以大大提高系统的响应速度和效率。
相比于传统的轮询方式,event机制只在有event发生时才进行处理,避免了不必要的资源浪费。
其次,event机制具有高度的可扩展性和灵活性。
qt libevent编译
qt libevent编译Qt和libevent是两个不同的库,分别用于不同的领域。
Qt是一个跨平台的C++应用程序开发框架,而libevent是一个事件驱动的网络编程库。
下面将分别介绍它们的特点和用途。
一、Qt库Qt是由挪威Trolltech公司(现已被诺基亚收购)开发的,是一个跨平台的应用程序开发框架。
它提供了丰富的功能和工具,使开发者可以快速创建高性能的图形用户界面(GUI)应用程序。
Qt具有以下特点:1. 跨平台性:Qt可以在多个操作系统上运行,包括Windows、macOS、Linux等,大大简化了跨平台开发的难度。
2. 强大的图形界面设计工具:Qt提供了Qt Designer,一个直观易用的界面设计工具,开发者可以通过拖拽和放置组件的方式设计用户界面。
3. 丰富的组件库:Qt拥有丰富的组件库,包括按钮、文本框、列表框等,开发者可以直接使用这些组件来构建用户界面。
4. 高性能:Qt使用了一些优化技术,如信号槽机制和事件循环,以实现高效的事件处理和界面更新。
5. 支持多种编程语言:除了C++,Qt还支持其他编程语言,如Python和JavaScript,使开发者可以根据自己的喜好选择编程语言。
二、libevent库libevent是一个事件驱动的网络编程库,它提供了一种高效的方式来处理网络连接和事件。
libevent可以用于开发服务器程序、网络代理、网络爬虫等应用。
libevent具有以下特点:1. 轻量级:libevent是一个轻量级的库,仅依赖于标准C库,不需要其他第三方库的支持。
2. 高性能:libevent使用了事件驱动的方式来处理网络连接和事件,可以实现高并发和低延迟的网络通信。
3. 跨平台性:libevent可以在多个操作系统上运行,包括Windows、Linux、FreeBSD等。
4. 支持多种网络协议:libevent支持TCP、UDP、HTTP等多种网络协议,开发者可以根据需要选择合适的协议。
linux编译方法
linux编译方法随着信息技术的发展,Linux操作系统在各个领域中得到了广泛应用。
为了能够更好地使用和开发Linux,对于Linux的编译方法有着深入的了解是十分必要的。
本文将介绍Linux的编译方法,包括准备工作、编译过程以及常见问题的处理。
一、准备工作在进行Linux编译之前,需要进行一些准备工作来保证编译的顺利进行。
1.1 环境搭建首先,需要确保你的系统已经安装了必要的软件和工具,比如gcc编译器、make工具等。
可以通过运行以下命令来检查软件是否已经安装:```shellgcc --versionmake --version```如果显示相应软件的版本号,则表示已经安装成功。
1.2 获取源代码在开始编译之前,需要先获取源代码。
通常情况下,你可以从开源项目的官方网站或者代码托管平台上下载源代码。
通过以下命令可以从远程仓库中克隆代码到本地:```shellgit clone <repository_url>```其中`<repository_url>`是代码仓库的URL地址。
二、编译过程在准备工作完成后,就可以进行Linux的编译了。
下面介绍一般的编译过程。
2.1 配置首先,在源代码所在的目录中运行以下命令来进行配置:```shell./configure```配置命令会检查系统环境,并生成一个Makefile文件,用于后续的编译。
2.2 编译配置完成后,运行以下命令进行编译:make```编译命令会根据Makefile文件中的规则,将源代码编译为可执行文件或者库文件。
2.3 安装编译完成后,可以运行以下命令来进行安装:```shellmake install```安装命令会将编译生成的文件复制到系统指定的目录中,使得这些文件可以被系统正常调用和使用。
三、常见问题处理在进行Linux编译的过程中,可能会遇到一些常见的问题。
下面列举一些常见问题及其解决方法。
3.1 缺少依赖库在编译过程中,可能会提示缺少某些依赖库。
libevent write回调 -回复
libevent write回调-回复Libevent是一个开源软件库,专门用于网络通信的异步事件驱动编程。
它提供了一种高效的方式来处理网络通信中的I/O事件,尤其适用于高并发的服务器应用。
其中,write回调函数是Libevent中非常重要的一个功能,用于处理写操作完成后的事件。
在本文中,我将一步一步展开解答有关Libevent的write回调函数的内容,其中包括了对Libevent的简介、write回调函数的定义和用途,以及如何使用write回调函数来处理写操作完成后的事件。
首先,让我们来了解一下Libevent是什么。
Libevent是一个事件驱动的网络编程库,旨在提供一种高效、跨平台的方式来处理网络通信。
它具有很好的可移植性和灵活性,可以在各种操作系统上运行,并且与多种网络协议(如TCP/IP、UDP等)兼容。
Libevent采用了事件驱动的编程模型,即基于事件驱动的I/O多路复用技术,可以有效地处理大量的并发连接请求。
Libevent中的write回调函数,顾名思义,用于处理写操作完成后的事件。
当我们向一个网络连接写数据时,往往需要等待写操作完成后才能进行下一步操作。
而write回调函数就是在写操作完成后被触发的回调函数,用于处理写操作的结果。
在Libevent中,我们首先需要定义一个事件处理器(event_base),用于处理事件的驱动。
然后,我们可以使用event_new函数来创建一个新的事件(event),并且将write回调函数与该事件关联起来。
当我们向一个网络连接写数据时,可以使用event_add函数将该事件添加到事件处理器中。
一旦写操作完成,Libevent会自动调用与该事件关联的write回调函数。
我们可以在write回调函数中编写相应的代码来处理写操作的结果。
通常,write回调函数会检查写操作是否成功,以及是否有错误发生。
如果写操作成功,我们可以继续进行下一步的操作;如果写操作失败,我们可以根据具体的错误情况来进行相应的处理,比如关闭连接或者重新尝试写操作。
libevent编译
libevent编译
LibEVENT是一款跨平台的基于BSD下的高性能异步事件驱动库,用于解决异步编程难题。
它能够有效地执行异步I/O或时间事件,可极大提高程序的性能,使之变得优雅。
libevent既可以单独使用,也可以与应用程序(比如web服务器)进行集成,可是以模块的方式实现,做到最大的性能。
LibEvent的编译方法简单易行,有基于Linux、Windows、Mac、BSD等不同操作系统的编译工具。
编译分为configure-make-install三步:
首先,确定libevent的源码包路径,使用linux shell命令进行当前路径切换,cmd进行切换;
其次,执行configure脚本,这是一个自动构建libevent库所需的步骤,命令参数格式如./configure,此步负责生成makefile文件;
最后,执行make命令,此步负责根据makefile文件来编译库文件,编译完成后,安装对应的执行文件。
LibEvent的编译相对来说容易,但需要搭配系统环境,无法满足针对每一种操作系统进行定制。
因此,有时候我们可能需要重新编译libevent,以满足自己应用系统的需求,才能达到最佳性能。
Linux系统常见的网络连接问题及解决方案详解
Linux系统常见的网络连接问题及解决方案详解在使用Linux系统过程中,我们经常会遇到各种网络连接问题。
本文将详细介绍几种常见的网络连接问题,并提供相应的解决方案。
一、无法连接到网络无法连接到网络是最常见的网络问题之一。
当我们无法连接到网络时,首先需要确认以下几点:1. 网络连接是否正常:检查网络连接是否已启用,确保网络线缆连接到正确的接口上。
2. IP地址是否配置正确:通过 ifconfig 命令检查当前网络接口的IP地址和子网掩码是否配置正确。
3. DNS解析是否正常:配置 DNS 服务器的地址,可通过编辑/etc/resolv.conf 文件来指定 DNS 服务器地址。
若以上检查都正常,而仍无法连接到网络,则可能有以下原因导致:1. 防火墙配置问题:检查防火墙是否阻止了网络连接。
可以使用iptables 命令来查看、修改防火墙规则。
2. 硬件问题:检查网卡是否正常工作,可以通过 lspci 命令查看系统中是否存在网卡设备。
3. 路由器配置问题:检查路由器的配置,确保网络设置正确。
二、网络延迟高网络延迟高会导致网络连接变慢或不稳定。
以下是一些降低网络延迟的解决方案:1. 检查网络带宽:使用网速测试工具(如speedtest-cli)检查当前网络带宽情况。
如果带宽使用率过高,可以考虑限制某些应用程序的带宽使用。
2. 优化网络设置:调整系统的TCP参数,可以使用 sysctl 命令来修改。
例如,通过增加tcp_fin_timeout 值来减少关闭连接时的等待时间。
3. 检查网络设备:检查路由器、交换机等网络设备是否正常工作。
可以尝试重新启动这些设备,或升级其固件。
三、无法解析域名无法解析域名是指无法通过域名获取相应的IP地址。
解决这个问题可以从以下几个方面入手:1. 检查DNS配置:查看 /etc/resolv.conf 文件,确认已正确配置DNS 服务器的地址。
也可以尝试更换为其他的DNS服务器地址,如Google DNS(8.8.8.8)。
Linux内核编译及常见错误实验报告
***学生实验报告一、实验目的(1)学习重新编译Linux内核的方法(2)理解Linux标准内核和发行版本内核的区别。
二、实验内容在Linux系统中下载同一发行版本的版本号较高的内核,编译之后运行自己编译的内核,并使用uname-r命令查看是否运行成功。
由于不同版本的内核在编译过程中可能出现不同的问题,本书推荐的内核版本为4.16.10。
从第7章开始的进阶实验篇,都可以选用该版本的内核。
三、实验设备Vmware上运行的linux ubuntu 5.11.0-43-generic实验成功:linux ubuntu 4.18.0-generic(Ubuntu18.04均可)实验成功的方法在最后四、实验过程和原理分析一、实验(一)准备工作:在这里我建议用一个全新的虚拟机,避免编译错误对原来常使用的虚拟机造成不可逆的影响,安装好后就先安装gcc、make等工具首先下载好Linux***内核文件解压至/usr/src 目录下,如下:确认安装好gcc、make等工具,后可直接运行命令sudo make menuconfig进行查看内核功能是否需要编译,如果遇到如下错误可以运行命令sudo apt bison 或sudo apt-get install fiex bison命令解决错误:解决:(不建议)(强烈建议)除此之外还可以直接运行,上一条命令解决不了就用下面这个:sudo apt-get install --reinstall bison libbison-dev flex libfl-dev解决上述错误(强烈建议)运行完上述命令后再次输入sudo make menuconfig便正常进入如下:见到这个界面后无需任何多余操作,使用键盘方向键选择<Save>回车再回车即可此时.config文件生成成功.config文件是隐藏文件记得加参数-a此外还有一个方法就是用cp 命令从原有系统的内核复制.config文件过来也可以命令:sudo cp /boot/config- 5.11.0-43-generic ./.config(二)编译内核为了避免多线程编译时同时出现过多错误,我们这里一开始只使用单线程编译在这里除了用make编译还可以用make-kpkg等工具,个人比较喜欢用make-kpkg但课本用make所以我接下来的实验也先用make完成。
libevent源码深度剖析
libevent源码深度剖析张亮1 前言Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚,相关文章也不少。
写这一系列文章的用意在于,一则分享心得;二则对libevent代码和设计思想做系统的、更深层次的分析,写出来,也可供后来者参考。
附带一句:Libevent是用c语言编写的(MS大牛们都偏爱c语言哪),而且几乎是无处不函数指针,学习其源代码也需要相当的c语言基础。
Libevent简介上来当然要先夸奖啦,Libevent 有几个显著的亮点:事件驱动(event-driven),高性能;轻量级,专注于网络,不如ACE那么臃肿庞大;源代码相当精炼、易读;跨平台,支持Windows、Linux、*BSD和Mac Os;支持多种I/O多路复用技术,epoll、poll、dev/poll、select和kqueue等;支持I/O,定时器和信号等事件;注册事件优先级;Libevent已经被广泛的应用,作为底层的网络库;比如memcached、Vomit、Nylon、Netchat 等等。
Libevent当前的最新稳定版是1.4.13;这也是本文参照的版本。
学习的好处学习libevent有助于提升程序设计功力,除了网络程序设计方面外,Libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等,都有助于提升自身的程序功力。
程序设计不止要了解框架,很多细节之处恰恰也是事关整个系统成败的关键。
只对libevent 本身的框架大概了解,那或许仅仅是一知半解,不深入代码分析,就难以了解其设计的精巧之处,也就难以为自己所用。
事实上Libevent本身就是一个典型的Reactor模型,理解Reactor模式是理解libevent的基石;因此下一节将介绍典型的事件驱动设计模式——Reactor模式。
参考资料:Libevent: /~provos/libevent/Reactor模式前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,并列出libevnet中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。
libevent中文参考手册
Libevent参考手册:前言1 从一万英尺外看LibeventLibevent是用于编写高速可移植非阻塞IO应用的库,其设计目标是:❖可移植性:使用libevent编写的程序应该可以在libevent支持的所有平台上工作。
即使没有好的方式进行非阻塞IO,libevent也应该支持一般的方式,让程序可以在受限的环境中运行。
❖速度:libevent尝试使用每个平台上最高速的非阻塞IO实现,并且不引入太多的额外开销。
❖可扩展性:libevent被设计为程序即使需要上万个活动套接字的时候也可以良好工作。
❖方便:无论何时,最自然的使用libevent编写程序的方式应该是稳定的、可移植的。
libevent由下列组件构成:❖evutil:用于抽象不同平台网络实现差异的通用功能。
❖event和event_base:libevent的核心,为各种平台特定的、基于事件的非阻塞IO后端提供抽象API,让程序可以知道套接字何时已经准备好,可以读或者写,并且处理基本的超时功能,检测OS信号。
❖bufferevent:为libevent基于事件的核心提供使用更方便的封装。
除了通知程序套接字已经准备好读写之外,还让程序可以请求缓冲的读写操作,可以知道何时IO已经真正发生。
(bufferevent接口有多个后端,可以采用系统能够提供的更快的非阻塞IO方式,如Windows中的IOCP。
)❖evbuffer:在bufferevent层之下实现了缓冲功能,并且提供了方便有效的访问函数。
❖evhttp:一个简单的HTTP客户端/服务器实现。
❖evdns:一个简单的DNS客户端/服务器实现。
❖evrpc:一个简单的RPC实现。
2 库创建libevent时,默认安装下列库:❖libevent_core:所有核心的事件和缓冲功能,包含了所有的event_base、evbuffer、bufferevent和工具函数。
❖libevent_extra:定义了程序可能需要,也可能不需要的协议特定功能,包括HTTP、DNS和RPC。
libevent cmake编译
一、概述1.1 libevent是什么1.2 cmake是什么二、libevent的编译2.1 下载libevent源码2.2 解压源码2.3 创建build目录2.4 使用cmake编译libevent2.4.1 cmake命令的基本语法2.4.2 cmake的常用参数2.4.3 选择编译选项2.4.4 开始编译三、常见问题及解决方案3.1 编译过程中遇到的常见问题3.1.1 找不到依赖库3.1.2 编译错误3.2 解决方案3.2.1 安装依赖库3.2.2 检查编译选项3.2.3 查看编译日志四、接口和应用一、概述1.1 libevent是什么在计算机科学领域,libevent是一个开源的事件通知库,它提供了一个简单的、高效的跨评台事件通知接口,用于实现事件驱动的编程。
它常用于网络应用程序的开发,如服务器端开发,网络爬虫等。
1.2 cmake是什么cmake是一个跨评台的、开源的构建系统,它通过一个描述项目的配置文件CMakeLists.txt来管理整个项目的编译过程。
它可以生成各种不同的构建文件,如Makefile、Visual Studio项目文件等。
二、libevent的编译2.1 下载libevent源码我们需要从libevent全球信息站或者其他途径上下载libevent的源码压缩包,通常为.tar.gz或.zip格式。
2.2 解压源码下载完源码之后,我们需要解压缩文件到我们工作目录中。
解压命令如下:tar -zxvf libevent-x.x.x.tar.gz2.3 创建build目录接下来,我们需要在libevent源码目录下创建一个build目录,用于存放编译生成的文件。
可以使用以下命令创建build目录:mkdir buildcd build2.4 使用cmake编译libevent在build目录中,我们使用cmake命令来配置和编译libevent。
下面是一些常用的cmake命令及参数。
libevent交叉编译详细过程
libevent交叉编译详细过程一、前言本文将介绍在Linux环境下使用Cygwin和MinGW交叉编译libevent的详细过程,希望能为初学者提供一定的帮助。
二、安装Cygwin和MinGW首先,我们需要在Windows系统下安装两个工具,Cygwin和MinGW,这两个工具分别提供了类Unix环境下的工具集和MinGW编译器。
Cygwin的安装方式可以参考官方文档,这里不再详述,而MinGW的安装方式则可以参考以下步骤:1. 下载MinGW安装包,推荐使用mingw-get-setup.exe下载,这是MinGW官方提供的一种安装方式。
2. 运行mingw-get-setup.exe,并选择需要安装的组件,其中至少需要安装“mingw32-base”和“mingw32-gcc-g++”两个组件。
3. 安装完成后,在系统环境变量中添加MinGW的bin目录,这样就可以使用MinGW编译器了。
三、交叉编译libevent1. 下载libevent源码,并解压缩。
可以从官方网站下载最新版本的源码。
2. 打开Cygwin终端,进入libevent源码目录,并执行以下命令,这将生成适用于MinGW编译器的Makefile文件:./configure --host=i686-pc-mingw323. 接下来,执行make命令进行编译,在Linux环境下编译完成后,我们就可以开始交叉编译了。
执行以下命令:make -j4 CC=i686-pc-mingw32-gcc AR=i686-pc-mingw32-arRANLIB=i686-pc-mingw32-ranlib这条命令中,-j4表示使用4个线程进行编译,CC、AR和RANLIB则分别指定了MinGW的三种工具。
4. 编译完成后,我们需要将生成的库文件和头文件复制到MinGW编译器的目录中,这样就可以在Windows环境下使用libevent库了。
执行以下命令:mkdir -p /mingw/libcp .libs/*.a /mingw/libmkdir -p /mingw/include/eventcp *.h /mingw/include/event四、总结通过本文的介绍,我们可以了解如何在Linux环境下使用Cygwin和MinGW交叉编译libevent库,并将编译结果复制到Windows环境下使用。
libevent交叉编译详细过程
libevent交叉编译详细过程libevent是一个轻量级的事件通知库,常用于网络编程中。
对于嵌入式系统,需要将libevent进行交叉编译。
本文将详细介绍libevent交叉编译的过程。
1. 准备交叉编译工具链首先需要准备交叉编译工具链,可以从官网下载或者使用第三方工具链。
这里以arm-none-linux-gnueabi为例。
2. 准备libevent源码从libevent官网下载最新的源码包。
3. 配置环境变量设置交叉编译工具链的环境变量,例如:export CC=arm-none-linux-gnueabi-gccexport CXX=arm-none-linux-gnueabi-g++export AR=arm-none-linux-gnueabi-arexport LD=arm-none-linux-gnueabi-ld4. 配置libevent进入libevent源码目录,执行以下命令进行配置:./configure --host=arm-none-linux-gnueabi如果需要开启SSL支持,可以添加以下参数:./configure --host=arm-none-linux-gnueabi--enable-openssl5. 编译libevent执行make命令进行编译:make6. 安装libevent执行make install命令进行安装:make install7. 交叉编译完成至此,libevent的交叉编译过程完成。
可以将生成的库文件和头文件拷贝到目标系统中使用。
总结libevent交叉编译需要准备交叉编译工具链、libevent源码,配置环境变量、配置libevent、编译libevent、安装libevent。
在交叉编译过程中需要注意平台的区别,例如开启SSL支持需要添加相应的参数。
linux下链接共享库错误的解决方法
error while loading shared libraries: xxx.so.x" 错误的原因和解决办一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.所以安装共享库后要注意共享库路径设置问题, 如下:1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" >> /etc/ld.so.conf# ldconfig3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell 里加入以下语句即可:export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.。
linux ln 软连接失效解决方法
linux ln 软连接失效解决方法1.我们可以尝试重新创建软连接。
We can try recreating the symbolic link.2.检查原始文件是否已被移动或删除。
Check if the original file has been moved or deleted.3.使用绝对路径而不是相对路径创建软连接。
Create symbolic link using absolute path instead of relative path.4.确保软连接的权限设置正确。
Ensure that the permissions for the symbolic link are set correctly.5.在创建软连接时指定符号链接的类型。
Specify the type of symbolic link when creating it.6.检查文件系统是否支持软链接。
Check if the file system supports symbolic links.7.使用readlink命令来查看软连接的目标。
Use the readlink command to view the target of the symbolic link.8.确保软连接的目标文件存在。
Make sure that the target file of the symbolic link exists.9.重新启动系统以确保软连接生效。
Restart the system to ensure that the symbolic link takes effect.10.可能需要检查文件的SELinux上下文以确保软连接被正确解析。
Check the SELinux context of the file to ensure that the symbolic link is resolved correctly.11.如果原始文件位于网络位置,可能需要在创建软连接时指定网络路径。
linux编译安装时常见错误解决办法
linux编译安装时常见错误解决办法configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: Please reinstall readline - I cannot find readline.h复制代码代码如下:yum -y install readline-develconfigure: error: Cannot find pspell复制代码代码如下:yum -y install aspell-develchecking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!复制代码代码如下:yum -y install unixODBC-develconfigure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.复制代码代码如下:yum -y install libicu-develconfigure: error: utf8mime2text() has new signature, but U8TCANONICAL is missing. This should not happen. Check config.log for additional information.复制代码代码如下:yum -y install libc-client-develconfigure: error: freetype.h not found.复制代码代码如下:yum -y install freetype-develconfigure: error: xpm.h not found.复制代码代码如下:yum -y install libXpm-develconfigure: error: png.h not found.复制代码代码如下:yum -y install libpng-develconfigure: error: vpx_codec.h not found.复制代码代码如下:yum -y install libvpx-develconfigure: error: Cannot find enchant复制代码代码如下:yum -y install enchant-develconfigure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/复制代码代码如下:yum -y install libcurl-develLAOGAO added 20140907:configure: error: mcrypt.h not found. Please reinstall libmcrypt.复制代码代码如下:wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gztar zxf libmcrypt-2.5.7.tar.gzcd libmcrypt-2.5.7./configuremake && make installadded 20141003:Cannot find imap复制代码代码如下:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.soconfigure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.复制代码代码如下:yum -y install libc-client-develCannot find ldap.h复制代码代码如下:yum -y install openldapyum -y install openldap-develconfigure: error: Cannot find ldap libraries in /usr/lib复制代码代码如下:cp -frp /usr/lib64/libldap* /usr/lib/configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path复制代码代码如下:yum -y install postgresql-develconfigure: error: Please reinstall the lib curl distribution复制代码代码如下:yum -y install curl-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develchecking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution Fix:复制代码代码如下:yum -y install bzip2-develchecking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/Fix:复制代码代码如下:yum -y install curl-develchecking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).Fix:复制代码代码如下:yum -y install db4-develchecking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.Fix:复制代码代码如下:yum -y install libjpeg-develchecking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found. Fix:复制代码代码如下:yum -y install libpng-develchecking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir=configure: error: freetype.h not found.Fix:复制代码代码如下:Reconfigure your PHP with the following option. --with-xpm-dir=/usrchecking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.Fix:复制代码代码如下:yum -y install libXpm-develchecking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.hFix:复制代码代码如下:yum -y install gmp-develchecking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.Fix:复制代码代码如下:yum -y install libc-client-develchecking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.hFix:复制代码代码如下:yum -y install openldap-develchecking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation pathFix:复制代码代码如下:yum -y install postgresql-develchecking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distributionFix:复制代码代码如下:yum -y install sqlite-develchecking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspellFix:复制代码代码如下:yum -y install aspell-develchecking whether to enable UCD SNMP hack… yes checking for default_store.h… nochecking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.Fix:复制代码代码如下:yum -y install net-snmp-develchecking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xml2-config not found. Please check your libxml2 installation.Fix:复制代码代码如下:yum -y install libxml2-develchecking for PCRE headers location… configure: error: Could not find pcre.h in /usrFix:复制代码代码如下:yum -y install pcre-develconfigure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!Fix:复制代码代码如下:yum -y install mysql-develchecking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path Fix:复制代码代码如下:yum -y install postgresql-develconfigure: error: Cannot find pspellFix:复制代码代码如下:yum -y install pspell-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.Fix:复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: Please reinstall readline - I cannot find readline.h复制代码代码如下:yum -y install readline-develconfigure: error: Cannot find pspell复制代码代码如下:yum -y install aspell-develchecking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!复制代码代码如下:yum -y install unixODBC-develconfigure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.复制代码代码如下:yum -y install libicu-develconfigure: error: utf8mime2text() has new signature, but U8TCANONICAL is missing. This should not happen. Check config.log for additional information.复制代码代码如下:yum -y install libc-client-develconfigure: error: freetype.h not found.复制代码代码如下:yum -y install freetype-develconfigure: error: xpm.h not found.复制代码代码如下:yum -y install libXpm-develconfigure: error: png.h not found.复制代码代码如下:yum -y install libpng-develconfigure: error: vpx_codec.h not found.复制代码代码如下:yum -y install libvpx-develconfigure: error: Cannot find enchant复制代码代码如下:yum -y install enchant-develconfigure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/复制代码代码如下:yum -y install libcurl-develLAOGAO added 20140907:configure: error: mcrypt.h not found. Please reinstall libmcrypt.复制代码代码如下:wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gztar zxf libmcrypt-2.5.7.tar.gzcd libmcrypt-2.5.7./configuremake && make installadded 20141003:Cannot find imap复制代码代码如下:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.soconfigure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.复制代码代码如下:yum -y install libc-client-develCannot find ldap.h复制代码代码如下:yum -y install openldapyum -y install openldap-develconfigure: error: Cannot find ldap libraries in /usr/lib复制代码代码如下:cp -frp /usr/lib64/libldap* /usr/lib/configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path复制代码代码如下:configure: error: Please reinstall the lib curl distribution复制代码代码如下:yum -y install curl-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develchecking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution Fix:复制代码代码如下:yum -y install bzip2-develchecking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/Fix:复制代码代码如下:yum -y install curl-develchecking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).Fix:复制代码代码如下:yum -y install db4-develchecking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.Fix:复制代码代码如下:yum -y install libjpeg-develchecking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found.Fix:复制代码代码如下:yum -y install libpng-develchecking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir=configure: error: freetype.h not found.Fix:复制代码代码如下:Reconfigure your PHP with the following option. --with-xpm-dir=/usrchecking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.Fix:复制代码代码如下:yum -y install libXpm-develchecking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.hFix:复制代码代码如下:yum -y install gmp-develchecking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.Fix:复制代码代码如下:checking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.hFix:复制代码代码如下:yum -y install openldap-develchecking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation pathFix:复制代码代码如下:yum -y install postgresql-develchecking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distributionFix:复制代码代码如下:yum -y install sqlite-develchecking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspellFix:复制代码代码如下:yum -y install aspell-develchecking whether to enable UCD SNMP hack… yes checking for default_store.h… nochecking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.Fix:复制代码代码如下:yum -y install net-snmp-develchecking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xml2-config not found. Please check your libxml2 installation.Fix:复制代码代码如下:yum -y install libxml2-develchecking for PCRE headers location… configure: error: Could not find pcre.h in /usrFix:复制代码代码如下:yum -y install pcre-develconfigure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!Fix:复制代码代码如下:yum -y install mysql-develchecking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path Fix:复制代码代码如下:yum -y install postgresql-develconfigure: error: Cannot find pspellFix:复制代码代码如下:yum -y install pspell-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.Fix:复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-devel。
linux下PHP编译安装各种出错及解决方法
Configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
解决方法:
# yum install curl curl-devel (For Redhat & Fedora)
错误六
Checking for pkg-config… /usr/bin/pkg-config
configure: error: Cannot find OpenSSL’s <evp.h>
解决方法:
#yum install openssl openssl-devel
--------------------------------------------------------------------
--------------------------------------------------------------------
错误十五
Checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h’ not found!
--------------------------------------------------------------------
错误五
Configure: error: xml2-config not found. Please check your libxml2 installation.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
libevent 在linux下编译链接问题
(2011-04-25 11:43:20)
转载▼
分类:知识收集
标签:
杂谈
按照网上例子搞了个httpd的小demo(linvo_httpd.c),遇到一连串问题,努力google了半天,终于得解,记录之~
环境:
Linux 2.6.18-164.el5
libevent-1.4.13
首先用gcc编译时候报了类似下面信息的一堆错
/tmp/ccsKVcym.o: In function `main':
linvo_httpd.c:(.text+0xdf): undefined reference to `event_init'
linvo_httpd.c:(.text+0xf3): undefined reference to `evhttp_start'
应该是找不到编译后的libevent库文件所导致,可能是路径问题
这次在编译时加上了-levent参数后(让其到系统库中找event库),顺利编译通过
gcc -Wall linvo_httpd.c -o linvo_httpd -levent
./linvo_httpd 运行之~ 我擦,又来。
./linvo_httpd: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
依然是路径问题找不到文件
whereis libevent 看下我的libevent默认装到哪里了
libevent: /usr/local/lib/ /usr/local/lib/libevent.so /usr/local/lib/libevent.a
哦~在/usr/local/lib/目录下
LD_DEBUG=libs ./linvo_httpd -v 看下demo程序究竟是到哪里去找的该文件
32372: find library=libevent-1.4.so.2 [0]; searching
32372: search cache=/etc/ld.so.cache
32372: search
path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/ tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2 :/usr/lib (system search path)
32372: trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
32372: trying file=/lib/tls/i686/libevent-1.4.so.2
32372: trying file=/lib/tls/sse2/libevent-1.4.so.2
32372: trying file=/lib/tls/libevent-1.4.so.2
32372: trying file=/lib/i686/sse2/libevent-1.4.so.2
32372: trying file=/lib/i686/libevent-1.4.so.2
32372: trying file=/lib/sse2/libevent-1.4.so.2
32372: trying file=/lib/libevent-1.4.so.2
32372: trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2
32372: trying file=/usr/lib/tls/i686/libevent-1.4.so.2
32372: trying file=/usr/lib/tls/sse2/libevent-1.4.so.2
32372: trying file=/usr/lib/tls/libevent-1.4.so.2
32372: trying file=/usr/lib/i686/sse2/libevent-1.4.so.2
32372: trying file=/usr/lib/i686/libevent-1.4.so.2
32372: trying file=/usr/lib/sse2/libevent-1.4.so.2
32372: trying file=/usr/lib/libevent-1.4.so.2
32372:
我勒个去~找了这么多地方,就是没到libevent应该在的目录中去找- -!
做个链接吧
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
这下欧了-.-
PS:我尝试加上--prefix=/usr/lib/把libevent重新编安装到指定目录,貌似无效。
Why???。