【发布时间】:2014-05-23 20:28:53
【问题描述】:
我在使用 Tomcat 作为 Web 服务器并使用 Apache Portable Runtime (APR) 和 OpenSSL for SSL 的 Windows 机器上运行 TeamCity。
我还没有设法将 OpenSSL 的版本升级到 1.0.1g,我认为原因是因为 Tomcat 原生库二进制文件 (tcnative-1.dll) (http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.29/binaries/tomcat-native-1.1.29-win32-bin.zip) 包含 APR 和 1.0.1e 版本的 OpenSSL,我找不到 1.0.1.g 的新二进制文件。
我尝试自己编译 Tomcat 原生库,但在尝试编译“libapr”项目时出现编译错误。
我得到的编译错误是:
Error 4 error LNK2019: unresolved external symbol __InterlockedIncrement referenced in function _apr_atomic_inc32@4 C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\apr_atomic.obj libapr
Error 5 error LNK2019: unresolved external symbol __InterlockedExchangeAdd referenced in function _apr_atomic_add32@8 C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\apr_atomic.obj libapr
Error 6 error LNK2019: unresolved external symbol __InterlockedExchange referenced in function _apr_atomic_set32@8 C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\apr_atomic.obj libapr
Error 7 error LNK2019: unresolved external symbol __InterlockedDecrement referenced in function _apr_atomic_dec32@4 C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\apr_atomic.obj libapr
Error 8 error LNK2019: unresolved external symbol __InterlockedCompareExchange referenced in function _apr_atomic_cas32@12 C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\apr_atomic.obj libapr
Error 9 error LNK1120: 5 unresolved externals C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\apr\Debug\libapr-1.dll 1 1 libapr
我正在尝试在 Visual Studio Ultimate 2013 中编译(也许 Visual Studio 的版本太新?)。
我该如何解决这个问题?
有人用 OpenSSL 1.0.1.g 成功构建了 Tomcat 原生库吗?
更新
我已将“平台工具集”设置为 v100(此处建议 https://groups.google.com/forum/#!topic/UniMRCP/Iybpn51UYnI),之前的编译错误消失了,但现在我得到了新错误:
Error 9 error C1083: Cannot open include file: 'apr.h': No such file or directory C:\Users\heartbleed\tomcat-native-1.1.29-win32-src\jni\native\include\tcn.h 26 1 tcnative
更多更新
我确实设法解决了编译问题并使用 OpenSSL 1.0.1g 构建了一个 tcnative-1.dll,并且我的 TeamCity 已启动并运行,解决了 Heartbleed 问题!我现在很忙。但请询问您是否需要详细的程序说明。
【问题讨论】:
-
一定要找详细的过程描述。谢谢!
-
请。如果您可以让您编译的 dll 可供下载,那就更好了。
标签: windows tomcat openssl apr heartbleed-bug