编译 ioftpd v7.7.3

今天编译了下 ioftpd ioFTPD-v7.7.3-src,遇到几个问题。
//z 2014-05-05 22:04:40 L.240' 6920 BG57IV3@BYH T3695602389.K.F519279140 [T2,L60,R1,V5]
1. 需要 openssl
下载并且编译 openssl-1.0.1g

2. 遇到一处包含头文件 <ms/applink.c>
改为 <openssl/applink.c>

3. 无法找到 tcl.h
详细见代码下 Tcl.txt;作者做了说明。
Error 1 fatal error C1083: Cannot open include file: 'tcl.h': No such file or directory
3.1 似乎还需要 tcl 。
下载了 tcl8.6.1-src
3.2 然后无法找到 tcl85tg.lib
使用 tcl86t.lib

3.3 Error 2 error LNK2019: unresolved external symbol _Tcl_RegisterHandleLockFunctions referenced in function _Tcl_ModuleInit Tcl.obj ioFTPD-v7
直接注释了,不知道有无什么影响。
3.3.1 看了眼文件夹,发现有tcl.txt,里面有详细的说明。有文档务必认真阅读文档呀。。。

//z 2014-05-06 00:40:59 L.239'83941 BG57IV3@BYH T190870396 .K.F519279140 [T5,L65,R1,V9]
3.3.2 仍有以下问题
Bad return type: void Tcl_RegisterHandleLockFunctions(void (*AcquireLock)(void),
 void (*ReleaseLock)(void))
3.3.2.1 作者所用的tcl85t.dll确有 Tcl_RegisterHandleLockFunctions 

08-27-2010, 02:07 PM
//z 2014-05-05 22:35:30 L.240' 5070 BG57IV3@BYH T278698003 .K.F519279140 [T3,L61,R1,V6]
Hmm, it just occurred to me that starting with v7.1.0 the TCL libraries differ from the official TCL v8.5.8 sources because of the addition of the Tcl_RegisterHandleLockFunctions command. That was added so the TCL library can share the ioFTPD lock around process/socket creation. I've included a copy of the TCL sources I'm building from in the link at the top.

49) Tcl_RegisterHandleLockFunctions(AcquireHandleLock, ReleaseHandleLock) has
    been added as a new exported C function to the standard TCL dlls.  This
    is the first time the TCL code has been modified for use by ioFTPD.
    Previously only the makefiles and command line options used for compilation
    were touched.  In order to fix the race condition with new sockets being
    automatically inheritable by child processes it is necessary to share a
    lock with the rest of the server and thus some way to communicate what to
    share is required.  This function just registers 2 callback functions to
    call before and after socket and/or process creation.
v7.1.0 Release Notes:
找了几个版本的tcl dll,里面均没有该函数:Tcl_RegisterHandleLockFunctions1) Files in \System:   Changed : ioFTPD.[exe,pdb] - Version 7.1.0.0.   Changed : tcl85t.[dll,pdb] - Version 8.5.2.8 (tcl version 8.5.8)   Changed : ioFTPD.ini - summary of changes by section...


The OpenSSL library is unchanged, you should be able to use anybody's compiled copy or build it yourself. We are currently using 1.0.0 but 1.0.1 is out there.


3.4 找到一处作者的说明,使用 nmake -nologo -f makefile.vc release OPTS=threads 编译 tcl ,使用这个重新编译下看看。
nmake -nologo -f makefile.vc release OPTS=threads


//z 2014-05-06 09:43:03 L.239'51417 BG57IV3@XCL T4210892314.K.F3811017215[T2,L59,R1,V16]
3.5 找不到 ioFTPD.ico ,将其路径更改如下。
IDI_ICON1               ICON                    ".\\..\\src\\ioFTPD.ico"

4. sum
//z 2014-05-06 01:09:04 L.239'82256 BG57IV3@BYH T335328246 .K.F519279140 [T6,L113,R1,V11]
focus:注释掉 Tcl_RegisterHandleLockFunctions ,然后挑选感兴趣的看看。

转载于:https://www.cnblogs.com/IS2120/p/6745663.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值