我想用一个没有" ./"
的可执行文件来运行我的程序例如,假设我有makefile:
all: RUN
RUN: main.o
gcc -0 RUN main.o
main.o: main.c
gcc -c main.c
因此,为了正常运行程序,我会在终端中说" make"然后把" ./ RUN"调用该程序。
但我想在终端中说#34; make"然后"运行"调用该程序。
总而言之,我只想在终端内说> RUN而不是> ./ RUN。在Makefile中是否可以使用任何命令来执行此操作?
当我刚刚把#34; RUN"在终端中它只是说找不到命令。
答案 0 :(得分:2)
这是$PATH的问题,由make
从environment导入。
您可以在Makefile
中设置它,也许可以使用
export PATH=$(PATH):.
或
export PATH:=$(shell echo $$PATH:.)
但是我不建议这样做(这可能是一个安全漏洞)。
我建议在您的./RUN
中使用明确 Makefile
,这样更可读,更不容易出错(如果你有{{{} 1}} RUN
中的其他程序。
顺便说一下,您最好阅读关于PATH
的{{3}},运行一次make
以了解make -p
已知的内置规则,并且
make
(因为你真的想要所有的警告和调试信息)
简单地
CC= gcc
CFLAGS+= -Wall -g
您main.o: main.c
中的(该规则中没有食谱)
答案 1 :(得分:0)
将您的makefile更改为
all: RUN
RUN: main.o
gcc -o RUN main.o && ./RUN
main.o: main.c
gcc -c main.c
将./filename放在makefile中