Search code examples
vb6gemfiregeode

trying to build geode native has 3 errors


I am building geode native according to https://github.com/apache/geode-native/blob/develop/BUILDING.md and getting errors in the build. I wonder if anyone can help? I have to do this because I need a VB6 client, and the prebuilt dll is not strongly signed, a COM interface to expose the dll to VB6 produces the below error after registration in the .Net GAC:

enter image description here

To build a strongly signed geode native client, I open an admin VS dev command prompt and navigate to a free directory, then:

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

This works fine, so I move on to:

cmake --build . -- /m

There are several errors starting with:

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]

I've tried directly installing Nunit and getting it on the path variable with no luck.

Then there's: D:\GeodeNativeSrc\geode-native\src\tests\javaobject\GetFunctionExeHA.java:38: error: cannot find symbol

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

3 openSSL errors:

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]

I've installed 64 bit CMake, and Cygwin and I'm using VS 2015 on Win 10 ... Thanks for any comment


Solution

  • Couple of things of concern.

    1) Since you are building open source Geode you should not be using the Pivotal.Gemfire reference. The Geode built assembly will be Apache.Geode.

    2) The MSBUILD-NOTFOUND error is usually a sign that the CMake configure phase was not run in the Visual Studio command prompt. Be sure you launch the VS 2015 64-bit MSBuild command prompt. You should delete your CMakeCache.txt file before you try again.

    3) There are -D flags you can send to CMake during configure to setup the strong naming. -DSTRONG_NAME_KEY=/path/to/key should do the trick.

    4) Since there is no binary distribution of Geode is your intent to use Pivotal GemFire? If so you should contact GemFire support and raise this issue.