【问题标题】:make: execvp: gcc: Permission denied制作:execvp:gcc:权限被拒绝
【发布时间】:2014-04-15 16:47:34
【问题描述】:

我正在尝试使用 ma​​ke -f Makefile 创建文件,但出现此错误:

root@kevin-VirtualBox:/home/kevin/Desktop/makef# sudo -s make -f Makefile
gcc -c -o obj/main.o main.c -I./
make: execvp: gcc: Permission denied
make: *** [obj/main.o] Error 127

-- 制作文件代码:

IDIR =./
CC=gcc
CFLAGS=-I$(IDIR)

ODIR=obj
LDIR =./

LIBS=-lgd -lrt

_DEPS = main.h Makefile
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

_OBJ = main.o serial.o fb.o menu_main.o timer.o cmdin.o buzzer.o statemachine.o inout.o network.o text_file_input.o text_file_input_oven.o
OBJ = $(patsubst %,$(ODIR)/%,$(_OBJ))


$(ODIR)/%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

main: $(OBJ)
    gcc -o $@ $^ $(CFLAGS) $(LIBS)

.PHONY: clean

clean:
    rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~ 

运行gcc程序后出错:

root@kevin-VirtualBox://home/kevin/Desktop/makef# make -f Makefile
gcc -c -o obj/main.o main.c -I./
make: execvp: gcc: Permission denied
make: *** [obj/main.o] Error 127
root@kevin-VirtualBox://home/kevin/Desktop/makef# make -f Makefile
gcc -c -o obj/main.o main.c -I./
make: gcc: Command not found
make: *** [obj/main.o] Error 127
root@kevin-VirtualBox://home/kevin/Desktop/makef# mv gcc gcOld^C
root@kevin-VirtualBox://home/kevin/Desktop/makef# make -f Makefile
gcc -c -o obj/main.o main.c -I./
gcc -c -o obj/serial.o serial.c -I./
gcc -c -o obj/fb.o fb.c -I./
gcc -c -o obj/menu_main.o menu_main.c -I./
gcc -c -o obj/timer.o timer.c -I./
gcc -c -o obj/cmdin.o cmdin.c -I./
cmdin.c: In function ‘processcmd’:
cmdin.c:65:4: warning: format ‘%f’ expects argument of type ‘float *’, but argument 4 has type ‘int *’ [-Wformat]
gcc -c -o obj/buzzer.o buzzer.c -I./
gcc -c -o obj/statemachine.o statemachine.c -I./
gcc -c -o obj/inout.o inout.c -I./
gcc -c -o obj/network.o network.c -I./
gcc -c -o obj/text_file_input.o text_file_input.c -I./
text_file_input.c: In function ‘text_file_input’:
text_file_input.c:43:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input.c:44:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input.c:45:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input.c:175:5: warning: format not a string literal and no format arguments [-Wformat-security]
gcc -c -o obj/text_file_input_oven.o text_file_input_oven.c -I./
text_file_input_oven.c: In function ‘text_file_input_oven’:
text_file_input_oven.c:43:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input_oven.c:44:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input_oven.c:45:3: warning: format not a string literal and no format arguments [-Wformat-security]
text_file_input_oven.c:112:5: warning: format not a string literal and no format arguments [-Wformat-security]
gcc -o main obj/main.o obj/serial.o obj/fb.o obj/menu_main.o obj/timer.o obj/cmdin.o obj/buzzer.o obj/statemachine.o obj/inout.o obj/network.o obj/text_file_input.o obj/text_file_input_oven.o -I./ -lgd -lrt
/usr/bin/ld: cannot find -lgd
collect2: ld returned 1 exit status
make: *** [main] Error 1

【问题讨论】:

  • 听起来您没有gcc 可执行文件的执行权限。 which gcc 显示什么,该文件的权限是什么?
  • kevin@kevin-VirtualBox://usr/bin$ ls gcc -l total 4 drwxrwxrwx 5 kevin kevin 4096 Dec 27 19:23 arm-linux-gnueabi
  • 你为什么显示一个名为arm-linux-gnueabi的目录的权限,而不是gcc的可执行文件?
  • 我没有要求文件夹的权限,我要求gcc程序本身的权限。
  • 首先你不应该有一个文件夹gcc。它位于哪里?

标签: c++ linux makefile


【解决方案1】:

问题是您还没有安装完整的开发工具。 我遇到了同样的问题并通过安装开发工具(包括gcc)解决了它

yum groupinstall "开发工具"

【讨论】:

    猜你喜欢
    • 2014-04-14
    • 2015-08-30
    • 2020-04-30
    • 1970-01-01
    • 2018-07-19
    • 2011-08-24
    • 2018-02-05
    相关资源
    最近更新 更多