首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在基本makefile中授予权限

如何在基本makefile中授予权限
EN

Stack Overflow用户
提问于 2016-12-10 12:50:21
回答 1查看 239关注 0票数 0

如何向这个简单的make文件添加权限?

代码语言:javascript
复制
all: shell ls cat groups

shell: shell.o cd.o
    gcc shell.o cd.o -o shell

cat: cat.o 
    gcc -c cat.c -o cat

ls: ls.o header.h
    gcc -c ls.c -o ls

groups: groups.o groups.h 
    gcc -c groups.c -o groups

shell.o: shell.c tlpi_hdr.h
    gcc -c shell.c

cd.o: cd.c tlpi_hdr.h
    gcc -c cd.c

cat.o: cat.c tlpi_hdr.h
    gcc -c cat.c 

ls.o: ls.c header.h
    gcc -c ls.c

groups.o: groups.c groups.h
    gcc -c groups.c 

clean: 
    rm *.o shell cat ls groups

我需要在我创建的shell中运行cat/ls/groups/cd,但无法运行,因为它没有权限。我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2016-12-10 15:01:14

举个例子,这条规则:

代码语言:javascript
复制
groups: groups.o groups.h 
    gcc -c groups.c -o groups

告诉GCC生成一个名为groups的对象文件(而不是普通的groups.o),因为您包含了-c选项。目标文件不是可执行文件,因此编译器不会使它们成为可执行文件,这就是权限问题。请注意,该规则要求make构建groups.o,但随后会忽略目标文件,因为它会重新编译源代码。

你想写一些更像这样的东西:

代码语言:javascript
复制
groups: groups.o 
    gcc groups.o -o groups
groups.o: groups.h

您需要使用更多的宏-或者您可以将规则从makefile中删除,因为make知道如何从groups.c构建groups

您还应该使用警告选项进行编译。至少使用-Wall;最好是-Wall -Wextra -Werror (并且我使用的选项比这些更多)。您可能需要优化(-O3);您可能需要调试(-g)。这些通常是通过设置宏,然后在命令中使用来处理的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41072286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档