Libevent 2.0.22 项目编译问题(OSX)

     2023-02-16     146

关键词:

【中文标题】Libevent 2.0.22 项目编译问题(OSX)【英文标题】:Libevent 2.0.22 project Compilation problems (OSX) 【发布时间】:2015-06-22 07:10:56 【问题描述】:

我想编译上面的示例代码,但出现以下错误。 这是什么原因。 “OSX - /usr/local”下安装的所有文件

// libevent2 library
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#include <evhttp.h>
#include <event2/event.h>
#include <event2/http.h>
#include <event2/bufferevent.h>

void generic_handler(struct evhttp_request *req, void *arg) 
    struct evbuffer *buffer;
    buffer = evbuffer_new();

    if (buffer == NULL) 
        err(1, "failed to create response buffer");
    

    evbuffer_add_printf(buffer, "Requested: %sn", evhttp_request_uri(req));
    evhttp_send_reply(req, HTTP_OK, "OK", buffer);


int main(int argc, char **argv) 
    struct evhttp *httpd;
    event_init();
    httpd = evhttp_start("0.0.0.0", 8080);
    // Set a callback for requests to "/specific".
    // evhttp_set_cb(httpd, "/specific", another_handler, NULL);
    // Set a callback for all other requests.
    evhttp_set_gencb(httpd, generic_handler, NULL);
    // Not reached in this code as it is now.
    event_dispatch();
    evhttp_free(httpd);
    return 0;

错误:

/Users/batuhangoksu/Desktop/test.c:14:10: fatal error: 'evhttp.h' file not found
#include <evhttp.h>
                 ^
1 error generated.

命令:

gcc -o octopus /Users/batuhangoksu/Desktop/test.c -levent -lpthread

【问题讨论】:

【参考方案1】:

首先,请找到evhttp.h文件中的path

然后,您可以通过命令检查此path 是否在#include 文件搜索路径列表中

gcc -o octopus /Users/batuhangoksu/Desktop/test.c -levent -lpthread -v

输出是这样的,

#include "..." search starts here:
#include <...> search starts here:
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.1.0/include
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)

如果path不在搜索列表中,则将-I /missed_include(假设它是path)添加到您的命令中,例如

gcc -o 章鱼 /Users/batuhangoksu/Desktop/test.c -levent -lpthread -I /missed_include

【讨论】:

libevent的安装与遇到的问题

首先建议去下载libevent的压缩包。libevent-2.0.22-stable.tar。放入Ubuntu解压然后阅读READ.ME,得出:1、./configure配置生成Makefile 2、make 3、makeverify(option)(就是可选,可以不用这个命令)4、sudomakeinstall 其中输入./configure命... 查看详情

配置错误:在 Mac OS Sierra 上找不到 libevent

】配置错误:在MacOSSierra上找不到libevent【英文标题】:Configureerror:libeventnotfoundonMacOSSierra【发布时间】:2018-01-0317:57:15【问题描述】:我正在尝试编译比特币库并抛出此错误checkingformismatchedboostc++11scopedenums...mismatchedcheckingforSSL...... 查看详情

libevent和基于libevent的网络编程

1libevent介绍和安装介绍libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制,来编译相应的... 查看详情

编译时如何将libevent与gcc静态链接?

】编译时如何将libevent与gcc静态链接?【英文标题】:Howtostaticallylinklibeventwithgccwhilecompiling?【发布时间】:2009-11-1117:40:20【问题描述】:我在我的项目中使用了event.h,但它必须运行的服务器不支持它。此外,我也无法安装它。... 查看详情

libevent使用

开始研究libevent,使用的版本是2.0.22。 实现一个定时器:每2秒执行一次printf。#include<stdio.h>#include<stdlib.h>#include<event2/event.h>#include<event2/event_struct.h>#include<time.h>voidtimeou 查看详情

libevent和基于libevent的网络编程

1libevent介绍和安装介绍libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制&#x... 查看详情

mac下安装fastdfs完全版

...复csrutilenable启用  重启三、安装    1、安装依赖libeventpcreopenssl     (1)安装libevent和openssl        libevent是个程序库,它将Linux的epoll、BSD类操作系统的kqueue等事件处理功能封装成统一的接口。即使对... 查看详情

使用 libevent 的 Rs232

】使用libevent的Rs232【英文标题】:Rs232usinglibevent【发布时间】:2013-09-0213:22:39【问题描述】:我正在尝试使用libevent来管理嵌入式Linux设备和pc之间的串行通信。libevent的第一个问题。我在eclipse中创建了一个C项目,主要是创建一... 查看详情

知道所有回调都使用 libevent 和 bufferevent_free 运行

】知道所有回调都使用libevent和bufferevent_free运行【英文标题】:Knowingallcallbackshaverunwithlibeventandbufferevent_free【发布时间】:2015-07-2823:15:23【问题描述】:我正在使用2.0.22版的libevent进行一些工作,并且正在努力处理bufferevent_free并... 查看详情

编译libevent源代码(windows)

学习笔记,只是记录本次成功用libevent源代码进行编译。环境为MinGW+VS2008+Msys。0.下载libevent库  http://libevent.org/下载stable稳定版的库。1.编译  一开始我用MinGW进行编译的,但是总是出现问题。后来参考了这个博客:http://m.blog... 查看详情

libevent和基于libevent的网络编程

1libevent介绍和安装介绍libevent是一个轻量级的基于事件驱动的高性能的开源网络库,并且支持多个平台,对多个平台的I/O复用技术进行了封装,当我们编译库的代码时,编译的脚本将会根据OS支持的处理事件机制&#x... 查看详情

Mingw+MSYS 中的 libevent 静态编译错误

】Mingw+MSYS中的libevent静态编译错误【英文标题】:StaticcompilederrorwithlibeventinMingw+MSYS【发布时间】:2013-01-1119:31:47【问题描述】:我编写了一个在winxp中扩展的python脚本,并编译了mingw+msys。它将调用libeventlib。我希望用户不要安装... 查看详情

知道任何使用 libevent 实现 HTTP 服务的小项目吗?

】知道任何使用libevent实现HTTP服务的小项目吗?【英文标题】:KnowofanysmallprojectsimplementinganHTTPserviceusinglibevent?【发布时间】:2009-03-1700:47:00【问题描述】:我的C有点生锈了。我有一些想法想尝试通过libevent实现。你知道我可以... 查看详情

在eclipseb编译时链接libevent

解决对‘evutil_make_socket_nonblocking’未定义的引用之类的问题。先记录一下libevent在Ubuntu下的安装,其实也很简单:tarzxvflibevent-2.*.*.tar.gzcdlibevent-2.*.*./configure–prefix=/usrmakemake 查看详情

opensuse编译libevent(代码片段)

https://github.com/libevent/libevent.githttps://github.com/libevent/libevent/blob/master/Documentation/Building.md#building-on-unix-cmake从github上下载libevent的源码./autogen.sh./configuremake在make过程中,需要open 查看详情

windows平台编译libevent

...S2013.exe2、在DeveloperCommandPromptforVS2013.exe命令行中进入你的libevent源码路径(例如d:libevent)cdd:libevent3、执行编译命令:nmake-fmakefile.nmake4、最终生成libevent.lib、libevent_core.lib和libevent_extras.lib3个静态库——————&m... 查看详情

windows平台使用vs2017编译libevent源码

...库编译先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到。1)windows平台使用VS2017编译openssl源码参考前面的文章openssl默认编译到C:\ProgramFiles(x86)\OpenSSL目录,包含收... 查看详情

从命令行使用 clang 编译:兼容性问题 mac os X

...在使用cmake、clang++、boost和openCV在MacOsX10.10上编译一个c++14项目(静态链接-编译标志:-Wall-std=c++14-O3)。如何确保程序在旧M 查看详情