【问题标题】:Debugging NMake file for visual studio C project调试 Visual Studio C 项目的 NMake 文件
【发布时间】:2014-06-26 06:21:21
【问题描述】:

我有一个 C 项目,我正在使用 NMake 来编译项目。但是,我遇到了一个错误,我发现很难弄清楚是什么原因造成的。 有谁知道如何调试使用 nmake 编译的 Visual Studio C 项目,甚至知道是什么导致了以下错误?

输出文件

------ 重建全部启动:项目:DirectTopUp,配置:Debug Win32 ------

Microsoft (R) 程序维护实用程序版本 10.00.30319.01 版权所有 (C) 微软公司。保留所有权利。

del obj*.o

sed:文件 GCCErrFix.sed 第 1 行:未知命令:`

C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(43,5): error MSB3073: The command "NMAKE /f make/makefile /a 2

==========全部重建:0成功,1失败,0跳过==========

制作文件

路径=c:\windows;c:\windows\system32;$(GCCROOT)\build\bin #NAME = Direct-Top-Up NAME = JOSECARD GCCDIR = $(GCCROOT)\build GCCBIN = $(GCCDIR)\bin GCCLIB = $(GCCDIR)\lib GCCLIBELF = $(GCCDIR)\libelf GCCINC = $(GCCDIR)\include LOCSRC = .\src LOCOBJ = .\obj LOCOUT = .\out LOCINC = .\src LOCLIB = ..\lib JOSINCDIR = $(JOSAPIINC) JOSLIBDIR = $(JOSAPILIB) LIB = $(GCCLIB)\libc.a JOSLIB = pc1000api(v21) WLSLIB = pc1000idwlsapi(v23) ASM = $(GCCDIR)\BIN\arm-elf-as GCC = $(GCCDIR)\BIN\arm-elf-gcc -O3 -I$(GCCINC) -I$(JOSINCDIR) -I$(LOCINC) -mlittle-endian -mcpu=arm9 -c LINK = $(GCCDIR)\BIN\arm-elf-ld -Tldscript -L$(GCCLIB) -L$(GCCLIBELF) -L$(JOSLIBDIR) CCFLAG = -O3 -I..\build\include -mlittle-endian -mcpu=arm9 OBJ = $(LOCOBJ)\init.o \ $(LOCOBJ)\JOSECARD.o \ $(LOCOBJ)\mamenus.o \ $(LOCOBJ)\madevices.o \ $(LOCOBJ)\magraphics.o \ $(LOCOBJ)\malib.o \ $(LOCOBJ)\mamessage.o \ $(LOCOBJ)\maoper.o \ $(LOCOBJ)\matrans.o \ $(LOCOBJ)\rijndael-alg-ref.o \ $(LOCOBJ)\rijndael-api-ref.o \ $(LOCOBJ)\maui.o \ $(LOCOBJ)\madisplay.o \ $(LOCOBJ)\mafiles.o \ $(LOCOBJ)\mabatch.o \ $(LOCOBJ)\digibcd.o \ $(LOCOBJ)\digicrypt.o \ $(LOCOBJ)\digimsg.o \ $(LOCOBJ)\digipkt.o \ $(LOCOBJ)\maprinter.o \ $(LOCOBJ)\mareports.o \ $(LOCOBJ)\mareceipt.o \ $(LOCOBJ)\maprotocol.o \ $(LOCOBJ)\GPRScomms.o \ $(LOCOBJ)\POSConvert.o \ $(LOCOBJ)\debug.o # ADS-ROM version $(NAME).elf: $(OBJ) @echo Linking All Modules... $(LINK) -o $(NAME).elf $(OBJ) -l$(WLSLIB) -l$(JOSLIB) -lc -lgcc elftobin $(NAME).elf $(LOCOUT)\$(NAME).bin PC1000---APP # ASM file $(LOCOBJ)\init.o: $(LOCSRC)\init.s @echo Assembling...init.s @$(ASM) $(LOCSRC)\init.s -o $(LOCOBJ)\init.o # C files $(LOCOBJ)\JOSECARD.o: $(LOCSRC)\JOSECARD.c @echo Compiling...JOSECARD.c @$(GCC) $(LOCSRC)\JOSECARD.c -o $(LOCOBJ)\JOSECARD.o $(LOCOBJ)\mamenus.o: $(LOCSRC)\mamenus.c @echo Compiling...mamenus.c @$(GCC) $(LOCSRC)\mamenus.c -o $(LOCOBJ)\mamenus.o $(LOCOBJ)\madevices.o: $(LOCSRC)\madevices.c @echo Compiling...madevices.c @$(GCC) $(LOCSRC)\madevices.c -o $(LOCOBJ)\madevices.o $(LOCOBJ)\magraphics.o: $(LOCSRC)\magraphics.c @echo Compiling...magraphics.c @$(GCC) $(LOCSRC)\magraphics.c -o $(LOCOBJ)\magraphics.o $(LOCOBJ)\malib.o: $(LOCSRC)\malib.c @echo Compiling...malib.c @$(GCC) $(LOCSRC)\malib.c -o $(LOCOBJ)\malib.o $(LOCOBJ)\mamessage.o: $(LOCSRC)\mamessage.c @echo Compiling...mamessage.c @$(GCC) $(LOCSRC)\mamessage.c -o $(LOCOBJ)\mamessage.o $(LOCOBJ)\maoper.o: $(LOCSRC)\maoper.c @echo Compiling...maoper.c @$(GCC) $(LOCSRC)\maoper.c -o $(LOCOBJ)\maoper.o $(LOCOBJ)\matrans.o: $(LOCSRC)\matrans.c @echo Compiling...matrans.c @$(GCC) $(LOCSRC)\matrans.c -o $(LOCOBJ)\matrans.o $(LOCOBJ)\rijndael-alg-ref.o: $(LOCSRC)\rijndael-alg-ref.c @echo Compiling...rijndael-alg-ref.c @$(GCC) $(LOCSRC)\rijndael-alg-ref.c -o $(LOCOBJ)\rijndael-alg-ref.o $(LOCOBJ)\rijndael-api-ref.o: $(LOCSRC)\rijndael-api-ref.c @echo Compiling...rijndael-api-ref.c @$(GCC) $(LOCSRC)\rijndael-api-ref.c -o $(LOCOBJ)\rijndael-api-ref.o $(LOCOBJ)\maui.o: $(LOCSRC)\maui.c @echo Compiling...maui.c @$(GCC) $(LOCSRC)\maui.c -o $(LOCOBJ)\maui.o $(LOCOBJ)\madisplay.o: $(LOCSRC)\madisplay.c @echo Compiling...madisplay.c @$(GCC) $(LOCSRC)\madisplay.c -o $(LOCOBJ)\madisplay.o $(LOCOBJ)\mafiles.o: $(LOCSRC)\mafiles.c @echo Compiling...mafiles.c @$(GCC) $(LOCSRC)\mafiles.c -o $(LOCOBJ)\mafiles.o $(LOCOBJ)\mabatch.o: $(LOCSRC)\mabatch.c @echo Compiling...mabatch.c @$(GCC) $(LOCSRC)\mabatch.c -o $(LOCOBJ)\mabatch.o $(LOCOBJ)\digibcd.o: $(LOCSRC)\digibcd.c @echo Compiling...digibcd.c @$(GCC) $(LOCSRC)\digibcd.c -o $(LOCOBJ)\digibcd.o $(LOCOBJ)\digicrypt.o: $(LOCSRC)\digicrypt.c @echo Compiling...digicrypt.c @$(GCC) $(LOCSRC)\digicrypt.c -o $(LOCOBJ)\digicrypt.o $(LOCOBJ)\digimsg.o: $(LOCSRC)\digimsg.c @echo Compiling...digimsg.c @$(GCC) $(LOCSRC)\digimsg.c -o $(LOCOBJ)\digimsg.o $(LOCOBJ)\digipkt.o: $(LOCSRC)\digipkt.c @echo Compiling...digipkt.c @$(GCC) $(LOCSRC)\digipkt.c -o $(LOCOBJ)\digipkt.o $(LOCOBJ)\maprinter.o: $(LOCSRC)\maprinter.c @echo Compiling...maprinter.c @$(GCC) $(LOCSRC)\maprinter.c -o $(LOCOBJ)\maprinter.o $(LOCOBJ)\mareports.o: $(LOCSRC)\mareports.c @echo Compiling...mareports.c @$(GCC) $(LOCSRC)\mareports.c -o $(LOCOBJ)\mareports.o $(LOCOBJ)\mareceipt.o: $(LOCSRC)\mareceipt.c @echo Compiling...mareceipt.c @$(GCC) $(LOCSRC)\mareceipt.c -o $(LOCOBJ)\mareceipt.o $(LOCOBJ)\maprotocol.o: $(LOCSRC)\maprotocol.c @echo Compiling...maprotocol.c @$(GCC) $(LOCSRC)\maprotocol.c -o $(LOCOBJ)\maprotocol.o $(LOCOBJ)\GPRScomms.o: $(LOCSRC)\GPRScomms.c @echo Compiling...GPRScomms.c @$(GCC) $(LOCSRC)\GPRScomms.c -o $(LOCOBJ)\GPRScomms.o $(LOCOBJ)\POSConvert.o: $(LOCSRC)\POSConvert.c @echo Compiling...POSConvert.c @$(GCC) $(LOCSRC)\POSConvert.c -o $(LOCOBJ)\POSConvert.o $(LOCOBJ)\debug.o: $(LOCSRC)\debug.c @echo Compiling...debug.c @$(GCC) $(LOCSRC)\debug.c -o $(LOCOBJ)\debug.o clean: del obj\*.o # del *.db # del *.blk # del *.db2 # del *.out </pre>

【问题讨论】:

  • 请向我们展示完整的 Makefile。看起来你需要调试你的编译,而不是你的实际代码。
  • @merlin2011 是正确的。
  • @merlin2011 makefile 已添加
  • 我在 Makefile 中看不到任何对 sed 的调用,并且您的错误包括 sed。听起来你有一些东西包装了nmake 命令。您是否尝试过打开 Visual Studio 命令提示符并直接调用 Makefile 目录中的nmake
  • 我发现了导致问题的原因。 GCCErrFix.sed 文件中存在错误。我使用 GCCERrFix.sed 帮助我跳转到 Visual Studio 中的行错误。感谢您提供该信息,回复:使用 Visual Studio 命令提示符,我以前从未使用过它来运行 nmake。将使用 if 进行未来测试

标签: c visual-studio-2010 sed nmake


【解决方案1】:

在 Visual Studio 中步入编译错误时应使用 sed -u -f GCCErrFix.sed。 调用 nmake 时使用的 sed 文件在 Header 之后重复了 start 块并引发错误。删除重复项即可解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多