首页 > 解决方案 > C 编译出错,正在尝试编译注释行

问题描述

我对C不太熟悉,但这很奇怪。我在生成文件上运行make命令,以便在 HP-UX(噩梦!)机器上编译我的 C 模块。事情正在正确编译,但最后我得到了这个错误:

Make: Don't know how to make #----------------. Stop.

看起来它正试图make开始我在makefile中的注释行。这是makefile(它很丑,不是我一开始写的):

#--------------------------------------------------------------
#  Name : Makefile
#--------------------------------------------------------------

CCOPTS    = -c +DD64 -Ae -I/path/to/include
DEFINES   = -DUNIX
INCLUDE  = /path/to/include
BIN       = /path/to/bin


FIRSTOBJS = asvc.o getname.o err.o 
SECONDOBJS  = CCARD.o getname.o err.o
THIRDOBJS  = CREQ.o getname.o err.o
FOURTHOBJS = CPORG.o implin.o getname.o cchcomm.o err.o
FIFTHOBJS = UNFOR.o getname.o err.o

DBINCDIR = /path/to/mysql-connector-c-6.0.2-hpux11.11-hppa2.0-64bit/include
LIBS      = -lmysqlclient
DBLIB    = +DD64 -L/path/to/lib

#---------------- All Executables -------------------
default : $(BIN)/asvc \
    $(BIN)/UNFOR \
    $(BIN)/ontop \
    $(BIN)/CCARD \
    $(BIN)/CREQ \
    $(BIN)/xltscri \

#---------------- Common object Modules -------------                   
asvc.o : asvc.c $(INCLUDE)/err.h $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) asvc.c

err.o : err.c $(INCLUDE)/err.h
    cc $(CCOPTS) -g err.c -I$(DBINCDIR)

UNFOR.o : UNFOR.c $(INCLUDE)/err.h $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) UNFOR.c

xltscri.o : xltscri.c $(INCLUDE)/ontop.h $(INCLUDE)/err.h \
     $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) xltscri.c

ontop.o : ontop.c $(INCLUDE)/ontop.h $(INCLUDE)/err.h \
    $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) ontop.c

getname.o : getname.c  $(INCLUDE)/ontop.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR)  getname.c

CCARD.o : CCARD.c  $(INCLUDE)/err.h $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) CCARD.c

implin.o : implin.c $(INCLUDE)/err.h $(INCLUDE)/xcerr.h
    cc $(CCOPTS) implin.c -I$(DBINCDIR)

CREQ.o : CREQ.c  $(INCLUDE)/err.h $(INCLUDE)/xcerr.h
    cc $(CCOPTS) $(DEFINES) -I$(DBINCDIR) CREQ.c

#------------ Make asvc (Get SubService ) ---------                   
$(BIN)/asvc: $(FIRSTOBJS)
    cc -o $@         \
    $(FIRSTOBJS)  \
    $(DBLIB)     \
    $(LIBS)

#------------ Make CCARD (Update Completed TimeStamp ) ---------   
$(BIN)/CCARD: $(SECONDOBJS)
    cc -o $@      \
    $(SECONDOBJS)  \
    $(DBLIB)     \
    $(LIBS)

#------------ Make UNFOR ( Match Partitioning Abend Checker ) ---------    
$(BIN)/UNFOR: $(FIFTHOBJS)
    cc -o $@         \
    $(FIFTHOBJS)  \
    $(DBLIB)     \
    $(LIBS)

#------------ Make ontop (Add script)---------                   
$(BIN)/ontop: ontop.o getname.o err.o
    cc -o $@         \
    ontop.o   \
    getname.o    \
    err.o      \
    $(DBLIB)     \
    $(LIBS)

#------------ Make CREQ (FPC Requests ) ---------            
$(BIN)/CREQ: $(THIRDOBJS)
    cc -o $@         \
    $(THIRDOBJS)  \
    $(DBLIB)     \
    $(LIBS)

#------------ Make xltscri (Select script)---------                   
$(BIN)/xltscri: xltscri.o getname.o err.o
    cc -o $@         \
    xltscri.o   \
    getname.o    \
    err.o    \
    $(DBLIB)         \
    $(LIBS)

#---------------End of Makefile ---------------------

标签: makefile

解决方案


@尤金 SH。钉了它和@Ingo Leonhardt。All executables 部分最后一行的额外反斜杠导致程序认为下一行(直到空格)是命令的一部分。谢谢。作为 makefile 的新手,不知道在注意到这一点之前我会浪费多少时间。


推荐阅读