尝试构建 geode native 有 3 个错误

trying to build geode native has 3 errors

我正在根据 https://github.com/apache/geode-native/blob/develop/BUILDING.md 构建 geode native,但在构建过程中出现错误。我想知道是否有人可以提供帮助?我必须这样做,因为我需要一个 VB6 客户端,并且预构建的 dll 没有经过强签名,在 .Net GAC 中注册后,将 dll 公开给 VB6 的 COM 接口会产生以下错误:

为了构建一个强签名的 geode 本机客户端,我打开一个 admin VS dev 命令提示符并导航到一个空闲目录,然后:

git clone https://github.com/apache/geode-native.git
cd geode-native
mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" -DGEODE_ROOT=D:/Geode ../src

这很好用,所以我继续:

cmake --build . -- /m

有几个错误开头:

D:\GeodeNativeSrc\geode-native\src\tests\cli\DUnitFramework\ClientGroup.cs(22,7): error CS0246: The type or namespace name 'NUnit' could not be found (are you missing a using directive or an assembly reference?) [D:\GeodeNativeSrc\geode-native\build\tests\cli\DUnitFramework\DUnitFramework.csproj]

我试过直接安装 Nunit 并在路径变量上获取它,但没有成功。

然后是:D:\GeodeNativeSrc\geode-native\src\tests\javaobject\GetFunctionExeHA.java:38: error: cannot find symbol

'MSBUILD-NOTFOUND' is not recognized as an internal or external command, operable program or batch file

可能存在问题

3 个 openSSL 错误:

ms\uptable.asm(1): error A2088: END directive required at end of file [D:\GeodeNativeSrc\geode-native\build\dependencies\openssl\openssl-extern.vcxproj]

MASM : fatal error A1000: cannot open file : tmp32dll.dbg\x86_64cpuid.asm [D:\GeodeNativeSrc\geode-native\build\dependencies\openssl\openssl-extern.vcxproj]

NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64\ml64.EXE"' : return code '0x1' [D:\GeodeNativeSrc\geode-native\build\dependencies\openssl\openssl-extern.vcxproj]

我已经安装了 64 位 CMake 和 Cygwin,我在 Win 10 上使用 VS 2015 ...感谢任何评论

一些值得关注的事情。

1) 由于您正在构建开源 Geode,因此您不应使用 Pivotal.Gemfire 参考。 Geode 构建的程序集将是 Apache.Geode。

2) MSBUILD-NOTFOUND 错误通常表示 CMake 配置阶段不是 Visual Studio 命令提示符中的 运行。请务必启动 VS 2015 64 位 MSBuild 命令提示符。在重试之前,您应该删除 CMakeCache.txt 文件。

3) 您可以在配置期间向 CMake 发送 -D 标志以设置强命名。 -DSTRONG_NAME_KEY=/path/to/key 应该可以解决问题。

4) 由于没有 Geode 的二进制发行版,您打算使用 Pivotal GemFire 吗?如果是这样,您应该联系 GemFire 支持并提出此问题。