当我尝试运行我的程序时,我得到了这个:
bash: ./supermarket: 权限被拒绝

可执行文件显示为二进制文件,对用户具有读写权限但没有执行权限

这是我的 makefile 的代码,你能找出问题所在吗?

OBJS    = supermarket.o cashier.o customer.o
SOURCE  = supermarket.c cashier.c customer.c
HEADER  = struct.h
OUT     = supermarket cashier customer
CC  = gcc
FLAGS   = -lrt -g -c

#LIBS   = -lm
# -g option enables debugging mode
# -c flag generates object code for separate files
# -lm math library
# -lrt semaphores

all: supermarket cashier customer

supermarket: supermarket.c
    $(CC) $(FLAGS) supermarket.c -o supermarket

cashier: cashier.c
    $(CC) $(FLAGS) cashier.c -o cashier

customer: customer.c
    $(CC) $(FLAGS) customer.c -o customer

# clean house
clean:
    rm -f $(OBJS) $(OUT)
# do a bit of accounting
count:
    wc $(SOURCE) $(HEADER)

最佳答案

FLAGS   = -lrt -g -c

具体来说,-c 标志。它在对象阶段停止编译,因此您的 supermarketcashiercustomer “可执行文件”实际上是没有通常扩展名的对象文件。

关于c - 在 makefile 的帮助下编译后权限被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8933333/

10-13 04:29