C++无法在Windows 10上编译Tomcat本地库

kninwzqo  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(257)

背景-
我正在使用Tomcat9.0.8作为oracle apex安装的Web服务器。我现在需要使tomcat fips-140兼容。为此,我正在尝试构建tomcat本机库,其中包含符合fips的openssl。我一直按照以下说明工作:
https://www.ysofters.com/2017/07/25/building-and-using-fips-capable-openssl-in-apache-tomcat/
有来自apache的“官方”tomcat本机编译指令,但它们需要使用mladen的自定义microsoft编译器工具包编译,而afaik无法在windows 10上编译。
构建步骤如下所示:
构建openssl fips对象模块
构建支持fips的openssl
构建apache可移植运行库
构建tomcat本机库
最后一步是失败的,因此我今天提出问题。
构建配置-
windows 10 sdk(10.0.19041.0)visual studio社区2019版本16.9.6
构建错误-
根据构建文档,我需要运行以下nmake命令:

nmake -f NMAKEMakefile WITH_APR=E:\native_build\deps\apr WITH_OPENSSL=E:\native_build\deps\openssl APR_DECLARE_STATIC=1 ENABLE_OCSP=1 WITH_FIPS=1

e:\native\u build\deps包含前面步骤中构建的apache portable runtime和openssl的编译版本。
nmake命令导致以下错误:

E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2146: syntax error: missing ')' before identifier 'FileInformationClass'
E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2081: 'FILE_INFO_BY_HANDLE_CLASS': name in formal parameter list illegal
E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2061: syntax error: identifier 'FileInformationClass'
E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2059: syntax error: ';'
E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1105): error C2059: syntax error: ','
E:\Windows Kits\10\include\10.0.19041.0\um\fileapi.h(1108): error C2059: syntax error: ')'
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2146: syntax error: missing ')' before identifier 'FileInformationClass'
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2081: 'FILE_INFO_BY_HANDLE_CLASS': name in formal parameter list illegal
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2061: syntax error: identifier 'FileInformationClass'
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2059: syntax error: ';'
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9118): error C2059: syntax error: ','
E:\Windows Kits\10\include\10.0.19041.0\um\winbase.h(9121): error C2059: syntax error: ')'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\bin\HostX64\x64\cl.EXE"' : return code '0x2'

我还没有找到解决这个问题的方法,甚至是这个问题的另一个例子,所以希望你们能有一些见解。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题