makefile .o help ...权限被拒绝

时间:2009-09-28 01:03:07

标签: makefile

我的程序有以下makefile。它创建了program.o文件,但是当我尝试运行它时

./program.o

我收到以下错误:

./statsh.o: Permission denied.

为什么会发生这种情况的任何想法?

HEADERS = statsh.h functions.h

default: statsh

statsh.o: statsh.c $(HEADERS)
    gcc -c statsh.c -o statsh.o

statsh: statsh.o
    gcc statsh.o -o statsh

clean:
    -rm -f statsh.o
    -rm -f statsh

1 个答案:

答案 0 :(得分:4)

.o文件只是一个临时产品。它包含编译器为单个编译单元生成的机器代码(基本上,这里是.c文件)。但是,该文件无意执行 - 正如您已经发现的那样,它实际上无法执行。

makefile生成目标文件statsh。那是你想要执行的那个。它包含来自statsh.o的代码,以及库例程等。它由您的makefile按规则生成

statsh: statsh.o
    gcc statsh.o -o statsh

调用GCC以使链接器/绑定器将各个部分组合在一起并构建目标程序。