2017-07-26 36 views
0

我正在根據https://github.com/apache/geode-native/blob/develop/BUILDING.md構建geode原生,並在構建中出現錯誤。我想知道有沒有人可以幫忙?試圖構建geode原生有3個錯誤

enter image description here

:我必須這樣做,因爲我需要一個VB6客戶端,而預建的DLL沒有強烈簽署,一個COM接口的DLL暴露在VB6登記在.NET GAC後產生下面的錯誤

要建立一個強簽署的Geode本地客戶端,我打開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 ...感謝您的任何評論

+0

'cmake -DGEODE_ROOT = D:/ Geode --build .'似乎已經工作,沒有錯誤,並且生成了VS解決方案文件...現在VS項目不會生成。 – rupweb

回答

1

幾件令人關注的事情。

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支持並提出這個問題。

+0

非常感謝您的評論,尤其是2&3。非常感謝。實際上1和4我需要一個32位版本的geode在一個強大的簽名DLL,我可以通過COM暴露給一個VB6應用程序...在某些時候,我可能會通過這個Pivotal支持,如你所建議的。 Thx再次。 – rupweb

+0

任何想法Cmake/m可選構建標誌是幹什麼的?或者如何讓Nunit框架進入構建路徑? – rupweb

+1

@rupweb/m標誌用於MSBuild允許並行構建多個項目 https://msdn.microsoft.com/en-us/library/bb651793.aspx – echobravo

相關問題