最近在cygwin下编译安装了不少程序软件,比如nginx、mysql、php、mysql-proxy之类的,基本都很顺利。今天编译haproxy的时候遇到了一些问题。
我下载的是haproxy 1.3.14.4。编译命令:
make TARGET=generic USE_STATIC_PCRE=1
结果抛出这些错误信息
$ make TARGET=generic USE_STATIC_PCRE=1
gcc -Iinclude -Wall -O2 -g -DTPROXY -DENABLE_POLL -DUSE_PCRE -I/usr/include -DCONFIG_HAPROXY_VERSION=\"1.3.14.4\"
-DCONFIG_HAPROXY_DATE=\"2008/03/20\" -c -o src/log.o src/log.c
src/log.c: In function `tcp_sess_log':
src/log.c:321: error: `INET6_ADDRSTRLEN' undeclared (first use in this function)
src/log.c:321: error: (Each undeclared identifier is reported only once
src/log.c:321: error: for each function it appears in.)
src/log.c:334: error: `AF_INET6' undeclared (first use in this function)
src/log.c:335: error: dereferencing pointer to incomplete type
src/log.c:363: error: dereferencing pointer to incomplete type
src/log.c:363: error: dereferencing pointer to incomplete type
src/log.c:363: error: dereferencing pointer to incomplete type
src/log.c:363: error: dereferencing pointer to incomplete type
src/log.c:321: warning: unused variable `pn'
make: *** [src/log.o] 错误 1
原因应该是cygwin还不支持ipv6吧。
在google查询了一下,找到一个cygwin ipv6的补丁,下载下来,解压到cygwin安装目录,覆盖掉一些文件。
再编译,提示:
$ make TARGET=generic USE_STATIC_PCRE=1
gcc -Iinclude -Wall -O2 -g -DTPROXY -DENABLE_POLL -DUSE_PCRE -I/usr/include -DCONFIG_HAPROXY_VERSION=\"1.3.14.4\"
-DCONFIG_HAPROXY_DATE=\"2008/03/20\" \
-DBUILD_TARGET='"generic"' \
-DBUILD_CPU='"generic"' \
-DBUILD_CC='"gcc"' \
-DBUILD_CFLAGS='"-O2 -g"' \
-DBUILD_OPTIONS='"USE_STATIC_PCRE=1"' \
-c -o src/haproxy.o src/haproxy.c
In file included from /usr/include/sys/socket.h:15,
from src/haproxy.c:44:
/usr/include/cygwin/socket.h:50:47: cygwin/uio.h: No such file or directory
make: *** [src/haproxy.o] 错误 1
找不到uio.h头文件?奇怪我记得这个文件在cygwin下是有的啊。找了一下,果然在/usr/include/sys下有这个文件,把它复制到/usr/include/cygwin目录下,再编译,O啦。
顺便说一下,我觉得cygwin真是挺强大的。还有,C语言写的东西,跨平台能力真强。
分享到:
相关推荐
找了一圈没找到当前最新版本的window可用的haproxy,低版本的积分也高的过分,后面想了下,估计是csdn因为下载次数自动调整的(因为早年分享的一个资源看了下居然变成快50积分了,当初应该就设置个1、2积分表示表示...
此版本是HAProxy 1.5.12的Windows移植版,通过Cygwin环境编译完成,使得HAProxy能够在Windows操作系统上运行。 Cygwin是一个在Windows平台上模拟Linux环境的软件集合,它提供了POSIX接口,使得可以在Windows系统上...
haproxy-2.6.5 windows版本64位,四个dll文件,该版本支持ssl pem证书文件需要自己生成 带运行库,可以直接运行。自己用Cygwin64 Terminal编译的,这个是64位版本
自己用cygwin64编译官方haproxy-1.9-dev5.tar.gz 文件,亲测可用,haproxy.exe、haproxy.cfg、cygwin1.dll、cyggcc_s-seh-1.dll 四个文件,启动命令haproxy.exe -f haproxy.cfg -d
3. **编译haproxy**:在Cygwin环境下,使用`tar`命令解压源代码,然后进入目录,执行`./configure --prefix=/cygdrive/c/haproxy`(根据你的安装路径调整),接着运行`make`和`make install`进行编译和安装。...
使用Cygwin64 Terminal编译haproxy意味着开发人员在Windows环境下利用了Cygwin模拟的Linux环境来编译源代码。Cygwin提供了Linux兼容的编译工具链,使得可以在Windows上构建原本只能在Linux上编译的项目。 **总结** ...
在Cygwin64环境下编译haproxy,意味着它能更好地适应Windows环境,解决可能存在的兼容性问题,同时也使得haproxy具备了在Windows上进行开发、调试和部署的能力。Cygwin提供的Unix-like工具和库使得移植和管理haproxy...
在Windows环境下编译haproxy,通常需要安装Cygwin,这是一个提供类Unix环境的软件集合,允许在Windows上运行Linux命令行工具。通过Cygwin64 Terminal,用户可以使用类似于Linux的编译工具链,如gcc,来构建haproxy源...
Cygwin64 Terminal是一个基于Cygwin的命令行终端,提供了与Linux类似的命令行界面,使得在Windows上编译haproxy成为可能。描述中提到"自己用Cygwin64 Terminal编译的,这个是64位版本",表明这个haproxy版本是通过...
在这个例子中,用户使用Cygwin64编译了haproxy 3.1,确保其在Windows 64位系统上能够正常运行。 标签中的“负载均衡”是haproxy的核心功能之一。它可以根据预设的策略(如轮询、最少连接、源IP哈希等)将进来的请求...
在这个案例中,haproxy的源码是在Cygwin的64位环境下编译的,确保了它可以在Windows x64系统上正常工作。 **haproxy** 是一款开源的负载均衡软件,能够处理HTTP、HTTPS、TCP等多种协议的流量。它具有高效、稳定和...
使用Cygwin编译haproxy确保了它能够在Windows系统上正常运行,同时保留了与Linux环境相似的开发和管理体验。 总的来说,haproxy-3.1 for Windows 64位版本是一款强大的负载均衡解决方案,尤其适用于需要在Windows...
4. 使用`make`命令编译haproxy(如果尚未编译)。 5. 编辑`haproxy.cfg`配置文件,根据需求配置负载均衡策略。 6. 使用`./haproxy -f haproxy.cfg -p haproxy.pid -d`启动haproxy,`-p`参数指定pid文件,`-d`参数...
使用Cygwin编译haproxy可能是因为它提供了所需的编译环境和依赖项。 尽管haproxy通常支持SSL/TLS以实现安全的网络通信,但这个特定的版本"不支持ssl"。这意味着它不能处理HTTPS协议,即无法加密和解密通过其路由的...
haproxy-2.7.3 windows版本64位,四个dll文件,该版本支持ssl pem证书文件需要自己生成 带运行库,可以直接运行。自己用Cygwin64 Terminal编译的,这个是64位版本
haproxy是一款广泛使用的开源负载均衡器,尤其在Linux环境下应用颇广,但其实它也支持Windows操作系统。标题中的"haproxy-windows-master.zip"是一个包含haproxy Windows版本的压缩包,通常包含了haproxy的源代码、...
开发者使用Cygwin64编译了haproxy,确保它在Windows 64位环境下能够正常工作。这对于那些习惯于Linux环境或者需要跨平台部署haproxy的用户来说是非常有用的。 总结起来,haproxy-2.7.3 for Windows 64位是一个轻量...
haproxy-2.5.1 windows版本64位,四个dll文件,该版本支持ssl pem证书文件需要自己生成 带运行库,可以直接运行。自己用Cygwin64 Terminal编译的,这个是64位版本