gcc: error: 246.o: 没有那个文件或目录

预感这样的问题会出现一列不同的原因,先一个刚刚遇到的错误:

hzq@ubuntu:$ make
gcc -Wall -g   -c 246.o 246.c
gcc: error: 246.o: 没有那个文件或目录
makefile:20: recipe for target '246.o' failed
make: *** [246.o] Error 1

好吧,这个错误很明显,生成 .o目标文件(object)的编译选项-c后不需要指定生成的文件名,所以把makefile改成

include ../unpv22e/Make.defines

# Following required by Solaris 2.x for Posix version of sigwait().
#CFLAGS += -D_POSIX_PTHREAD_SEMANTICS

PROGS = 246
CFLAGS  = -Wall -g
VPATH = ../unpv22e/lib
depends_c = $(wildcard  ../unpv22e/lib/*.c)
depends_o = $(wildcard  ../unpv22e/lib/*.o)
depends_h = $(wildcard  ../unpv22e/lib/*.h)

all: ${PROGS}
    #ar rv ${LIBUNPIPC_NAME} $?             #创建库文件
    #${RANLIB} ${LIBUNPIPC_NAME}
246:246.o ../unpv22e/lib/px_ipc_name.c ../unpv22e/lib/error.c
    ${CC} ${CFLAGS}   -o 246 246.o  ../unpv22e/lib/px_ipc_name.c ../unpv22e/lib/error.c -pthread

246.o : 246.c 
    ${CC} ${CFLAGS}   -c  246.c
clean:
    rm -f *.o

或者直接去掉 ${CC} ${CFLAGS} -c 246.c,让make自己去推导编译方式

猜你喜欢

转载自blog.csdn.net/qq_36337149/article/details/81054311