如何在没有" ./&#34的情况下运行可执行文件;使用MakeFile?

时间:2017-02-19 17:44:42

标签: linux shell unix command-line makefile

我想用一个没有" ./"

的可执行文件来运行我的程序

例如,假设我有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"在终端中它只是说找不到命令。

2 个答案:

答案 0 :(得分:2)

这是$PATH的问题,由makeenvironment导入。

您可以在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中