# gnsdk C# wrapper sample makefile
##
CC=Csc.exe
CP=cp
GNSDK_LIB_PATH=../../../../lib/$(GNSDK_PLATFORM)
GNSDK_WRAPPER_LIB_PATH=../../lib/$(GNSDK_PLATFORM)
GNSDK_MARSHAL_LIB=$(GNSDK_WRAPPER_LIB_PATH)/gnsdk_csharp_marshal.dll
GNSDK_CSHARP_LIB=../../lib/gnsdk_csharp.dll
CSHARP_FLAGS=/noconfig /nowarn:1701,1702 /nostdlib+ /errorendlocation
CSHARP_REFS=/reference:$(GNSDK_CSHARP_LIB) /reference:"Microsoft.CSharp.dll" /reference:"mscorlib.dll" /reference:"System.Core.dll" /reference:"System.Data.DataSetExtensions.dll" /reference:"System.Data.dll" /reference:"System.dll" /reference:"System.Xml.dll"
ifeq ($(GNSDK_PLATFORM), win_x86-32)
CSHARP_FLAGS+=/platform:x86
endif
ifeq ($(GNSDK_PLATFORM), win_x86-64)
CSHARP_FLAGS+=/platform:x64
endif
SAMPLE_TARGET=sample.exe
build_sample:
$(CC) $(CSHARP_FLAGS) $(CSHARP_REFS) /out:$(SAMPLE_TARGET) /target:exe /utf8output MusicIDStream.cs
$(CP) $(GNSDK_MARSHAL_LIB) .
$(CP) $(GNSDK_CSHARP_LIB) .
我有一个c#应用程序的makefile。 我试图从visual studio命令提示符运行它。 这行有错误:CSHARP_FLAGS + = / platform:x86
答案 0 :(得分:3)
您正在查看的makefile似乎是一个GNU make makefile。你不能将它与nmake一起使用。如果你想使用这个makefile,你必须安装GNU make,否则写一个nmake makefile与nmake一起使用。
答案 1 :(得分:0)
缺少分隔符是指nmake缺少目标与其依赖对象之间的冒号。
在这种情况下,这是由于使用了NMAKE无法识别并解释为目标的GNU make ifeq引起的。使用NMAKE的if子句。
因此,将以下if子句替换为:
!if "$(GNSDK_PLATFORM)" == "win_x86-32"
CSHARP_FLAGS+=/platform:x86
!endif
!if "$(GNSDK_PLATFORM)" == "win_x86-64"
CSHARP_FLAGS+=/platform:x64
!endif
请注意!在if和endif子句之前标记,也缺少其他的行空间。这些很重要。