1
我試圖在引用SO Run Executable from makefile上的某個鏈接後運行可執行文件。一切正常,只需要輸入「make run」即可執行所有命令。我想知道如何運行它,而無需鍵入run,只需讓它運行一切即可。截至目前,make命令只執行規則並運行另一部分,我必須使用make run。我是Make的新手。你能幫我改進一下代碼嗎?任何幫助表示讚賞。生成運行可執行文件的make文件
all: rdata.c
-sudo rm a.out
-gcc rdata.c -o a.out
exec: run
run: all
-sudo ./a.out
sudo javac -classpath /home/hduser/12115_Select_Query/hadoop-core-1.1.2.jar -d mysort MySort.java
sudo jar -cvf mysort.jar -C mysort/ .
-hadoop fs -rmr MySort/output
-hadoop fs -rmr MySort/input
hadoop fs -mkdir MySort/input
hadoop fs -put Data/data.txt MySort/input
hadoop jar mysort.jar org.myorg.MySort MySort/input MySort/output
-sudo rm /home/hduser/Out/sort.txt
hadoop fs -copyToLocal MySort/output/part-r-00000 /home/hduser/Out/sort.txt
sudo gedit /home/hduser/Out/sort.txt
.PHONY: exec run
嘿。謝謝。有用。我想知道更多關於在這裏發生的冗餘。也是它只運行Makefile中定義的第一個規則? –
@RED當沒有參數運行時,使用默認目標。在沒有被告知任何特殊的情況下,默認目標是makefile中的第一個目標make。 –
@RED:你也可以把'run'的規則放在原來的地方,並把'.DEFAULT_GOAL:= run'放在makefile的某處,但我想給出最簡單的答案。 – Beta