新版Gcc编译Kingate1.6
2007-05-11 22:24:56 章鹏(final) 阅读次数(141)
http://final.52mdj.com/archives/31/
ubuntu 下编译出现
KConfig.h:52: error: extra qualification 'KConfig::' on member 'GetList'
make[2]: *** [KConfig.o] Error 1
make[2]: Leaving directory `/root/kingate-1.4/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/kingate-1.4/src'
make: *** [all-recursive] Error 1
应该说,Linux下功能最全的代理服务器差不多就是kingate了,支持http,https,socks,mms,ftp等等相当全面的协议,认证模块也算得丰富,并且还提供了基于Web进行配置管理的界面,是一个非常不错的开源软件。作者是一个国内的高手,只是近两年好像没有再继续更新了。有人说这个软件不够稳定,的确开启该软件的http代理服务时,代理服务器端存在容易崩溃的现象,不过我都是只开一个Web管理端口和socks5服务的,感觉还是十分稳定的。
本来考虑偷懒一下,直接找Debian下有deb包的代理软件来用,可惜找来找去,虽然有squid、socks5 server等同样非常优秀的代理服务器软件,可是总是无法兼顾http代理、socks代理和认证这三方面的功能,所以还是用回kingate了。
下载源码,准备编译环境
本来kingate的官方网站应该是http://www.kingate.net ,但现在访问不到了。可以到http://sourceforge.net/projects/kingate 下载最新的1.6版本源代码包,也就是kingate-1.6.tar.gz 。
我的操作系统版本是Debian Etch 4.1 (testing),为了能够编译kingate,大致需要安装gcc g++ gpp这几个包,安装时几个包会自动装上相关的依赖库。
修改源代码
由于现在gcc的版本已经是4.1了,对c++语法的支持略有变化,因此需要做如下改动:
1. src/KConfig.h的第52行,由
bool KConfig::GetList(const char *filename);
// 改为
bool GetList(const char *filename);
2. src/KUser.h的第87行,由
std::string KUser::ListLoginUser();
// 改为
std::string ListLoginUser();
配置和编译
1. ./configure --prefix=/opt/kingate
* 其中“/opt/kingate”是我想放置编译好的kingate程序的路径位置,详细可以参考随源代码的安装说明README.zh。
* 如果编译环境准备得没有问题,则./configure过程会顺利完成,如果报错,则可能因为缺少某些包造成的,要检查./configure的屏幕输出信息,看其中环境检查结果是“no”的项,有可能对应着某个还没有安装的包。
2. make install
* 如果已经按上面的方法修改了源代码,那么应该能够顺利完成编译;如果不修改源代码,则会抛出一个“error: extra qualification”。
执行kingate
使用命令/opt/kingate/kingate 启动代理服务,这时应该可以通过浏览器访问http://localhost:2222 以用户名root、密码kingate登录了。对系统参数的调整也可以通过Web界面来完成。
其他常用的kingate命令行参数包括:
prefix/bin/kingate 启动kingate
prefix/bin/kingate -f 强行启动kingate,如果启动kingate提示有一个在运行,而你又确实kingate没有运行,可以使用这个。
prefix/bin/kingate -h 查看kingate用法
prefix/bin/kingate -q 关闭kingate
prefix/bin/kingate -v 查看kingate版本
prefix/bin/kingate -d # 以调试方式运行程序。#为调试级别,(0-3)。数字越高显示信息也越多。
更详细的说明参照随源代码发布的README文件以及doc目录中的说明文档。
分享到:
相关推荐
见我的blog <br>Kingate1.6 for linux 编译与安装
《Kingate 1.6:C语言实现的代理服务器源码解析》 Kingate是一款用C语言编写的代理服务器软件,其1.6版本的源代码公开,为开发者提供了宝贵的参考学习材料。本文将深入探讨Kingate的核心功能、设计原理以及源码中的...
能运行在linux,freebsd,...及其它类unix,还有windows(最新版本要求nt 4.0以上)操作系统上 kingate是一个多线程的程序(采用线程池的方式),所以短时间内大量的连接请求,kingate还能保持很高的性能。 kingate还支持...
能运行在linux,freebsd,...及其它类unix,还有windows(最新版本要求nt 4.0以上)操作系统上 kingate是一个多线程的程序(采用线程池的方式),所以短时间内大量的连接请求,kingate还能保持很高的性能。 kingate还支持...
在2010-04-18发布了其2.0版本,可惜没有For Windows的发布版本,需要自己编译. 我在网上搜了下,没找到For windows的2.0发布版本.于是自己使用cygwin编译环境尝试自己编译.于是就有了这个东西. 编译了N次,也可能是我对...
在2010-04-18发布了其2.0版本,可惜没有For Windows的发布版本,需要自己编译. 在2012-02-02发布了其2.1版本,似乎还是没有For Windows的发布版本,需要自己编译. 赶紧从网上下载了cygwin编译环境。尝试使用以前的办法...
1.安装Kingate
kingate代理服务器说明 kingate代理服务器,受GPL协议保护,官方站点:http://sourceforge.net/projects/kingate/。 支持http,https,socks,ftp,pop3,smtp,dns,telnet代理。 客户端的设置及用法同wingate一样,可以...
自己在vps做的kingate服务端,估计最近占用流量太大了,老是被服务商把我vps重启,但kingate这个东西是一旦被强制结束掉,是无法开机启动的,因为要把kingate.pid这个文件删除了才能启动,好吧,对于我们这样的懒人来说,...
kingate是代理服务器。 支持http,袜子,ftp,smtp,pop3代理。
标题中的"http.rar_C++ http服务器_HTTP 服务器_VC HTTP服务器_vc kingate_代理"表明这是一个关于C++实现的HTTP服务器项目,可能包含了VC++(Visual C++)开发环境下的源代码,以及一个名为"vc kingate"的组件或工具...