Windows源码安装subversion
一、运行环境
-
VS2015完整安装
-
Subversion1.6.3
二、源码编译环境配置
1、python环境安装
python-2.4.msi
2、perl环境安装
ActivePerl-5.8.8.822-MSWin32-x86-280952.msi
3、openssl编译
C:>cd openssl-0.9.7f
C:>perl Configure VC-WIN32
C:>call ms\do_masm
C:>nmake -f ms\ntdll.mak
.\crypto\mem_dbg.c(607) : error C2220: warning treated as error - no 'object' fi
le generated
解决方法
修改ms\ntdll.mak文件,将第19行的CFLAG的/WX参数去掉,重新运行nmake。
没有报错后,出现如下说明编译成功
link /nologo /subsystem:console /machine:I386 /opt:ref /out:out32dll\ope
nssl.exe @C:\Users\ADMINI~1\AppData\Local\Temp\nm30D1.tmp
cd out32dll
call ..\ms\test
最后看到如下提示信息,说明编译正常,功能正常
TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 512 bit RSA passed all tests
4、apache相关依赖模块编译
4.1、apr编译
vs2015打开apr.dsw工程文件,编译,本次环境路径
#
C:\SVN\src-trunk\apr\apr.dsw
#
编译libapr工程
编译报错:
1>apr_atomic.obj : error LNK2019: 无法解析的外部符号 __InterlockedCompareExchange,该符号在函数 _apr_atomic_cas32@12 中被引用
1>apr_atomic.obj : error LNK2019: 无法解析的外部符号 __InterlockedDecrement,该符号在函数 _apr_atomic_dec32@4 中被引用
1>apr_atomic.obj : error LNK2019: 无法解析的外部符号 __InterlockedExchange,该符号在函数 _apr_atomic_set32@8 中被引用
1>apr_atomic.obj : error LNK2019: 无法解析的外部符号 __InterlockedExchangeAdd,该符号在函数 _apr_atomic_add32@8 中被引用
1>apr_atomic.obj : error LNK2019: 无法解析的外部符号 __InterlockedIncrement,该符号在函数 _apr_atomic_inc32@4 中被引用
修改工具集为
Visual Studio 2015 - Windows XP (v140_xp)
4.2、apr-util编译
vs2015打开aprutil.dsw工程文件,编译,本次环境路径
#
C:\SVN\src-trunk\apr-util\aprutil.dsw
#
编译libaprutil工程
修改工具集为
Visual Studio 2015 - Windows XP (v140_xp)
5、subversion-1.6.3客户端模块编译
5.1、修改配置参数
修改build/generator/gen_win.py文件,删除763、764行
if target.name.find('ruby') == -1:
fakedefines.append("snprintf=_snprintf")
修改neon/config.hw文件,删除59行
#define snprintf _snprintf
5.2、生成vcproj项目工程文件
cmd命令窗口执行
#
cd src-trunk
#运行如下python命令,生成subversion_vcnet.sln解决方案文件
python gen-make.py -t vcproj --with-openssl=..\openssl-0.9.7f --with-zlib=.\zlib --with-apr=.\apr --with-apr-util=.\apr-util --with-apr-iconv=.\apr-iconv --with-sqlite=.\sqlite-amalgamation
#
vs2015打开并编译
5.3、编译
操作同上,工程的编译工具集统一设置成v140_xp
6、目录结构
7、附件下载
<–>文章附件下载<–>