nmake致命错误U1034:语法错误:缺少分隔符

本文关键字:分隔符 错误 语法 致命错误 U1034 nmake | 更新日期: 2023-09-27 17:57:55

# 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#应用程序的生成文件。我正试图从visualstudio命令提示符下运行它。我在以下行中出错:CSHARP_FLAGS+=/platform:x86

nmake致命错误U1034:语法错误:缺少分隔符

您正在查看的makefile似乎是一个GNU makefile。你不能和nmake一起使用它。如果你想使用这个makefile,或者写一个nmake makefile与nmake一起使用,你必须安装GNU make。

缺少分隔符是指nmake在目标与其从属项之间缺少冒号。

在这种情况下,这是由于使用GNU make ifeq引起的,NMAKE没有将其识别并解释为目标。使用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子句之前加上标记,并且缺少额外的行空格。这些都很重要。