0

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

在此处输入图像描述

为了构建一个强签名的 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 ... 感谢您的任何评论

4

1 回答 1

1

几件值得关注的事情。

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

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

3)-D您可以在配置期间将标志发送到 CMake 以设置强命名。-DSTRONG_NAME_KEY=/path/to/key应该做的伎俩。

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

于 2017-07-26T16:35:05.060 回答