我有一個makefile生成我的.c項目,並生成一個可執行文件。我知道這可以通過使用終端的命令./(NAME)來運行。C程序可以在與生成相同的生成文件中執行嗎?
我的問題是這樣的 - 是否有可能在makefile中實際構建和運行,以便我能夠在終端中鍵入'make',並且程序將被構建並運行文件&命令? (不需要手動運行可執行文件)。
謝謝:)
我有一個makefile生成我的.c項目,並生成一個可執行文件。我知道這可以通過使用終端的命令./(NAME)來運行。C程序可以在與生成相同的生成文件中執行嗎?
我的問題是這樣的 - 是否有可能在makefile中實際構建和運行,以便我能夠在終端中鍵入'make',並且程序將被構建並運行文件&命令? (不需要手動運行可執行文件)。
謝謝:)
不知道什麼是你的makefile,但你可以做這樣的事情:
PROGARGS=
.PHONY:all run
all:prog
#...
run:all
./prog $(PROGARGS)
只要你正確的順序使用你的makefile依賴關係,沒有什麼運行阻止你你的C程序來自makefile。也就是說,大多數人會希望makefile只是構建文件,而不是同時運行它。
我會建議只在命令行中的單行中寫入make命令和run命令。這樣你只需要按一次輸入,但不需要在makefile中做任何事情。如果你的外殼支持的歷史後,你想建立和運行下次再來你只需要按下「UP」和「ENTER」 ......
make && ./NAME
如果你真想把一切Makefile裏,我建議在makefile中創建一個單獨的「運行」目標,以減少混淆的機會,就像jdarthenay的answer一樣。
是的,它可以。
例如:
TARGET=hoge
CC=gcc
.PHONY: compileandrun
compileandrun: $(TARGET)
./$(TARGET)
$(TARGET): $(TARGET).c
$(CC) -o $(TARGET) $(TARGET).c
如果你有這樣的Makefile
和源代碼hoge.c
在你的可寫當前目錄,程序會被編譯,並與make
命令來運行。
其他答案很好;但是,您可以使用這個其他變體(一種快速和骯髒的解決方案)。
假設你的makefile
有這條線來構建你的程序:
NAME:
gcc source.c -o NAME
您可以添加運行命令直接在下面:
NAME:
gcc source.c -o NAME
./NAME
這不一樣&&
連接:它運行第一命令,如果成功的話,也是第二個命令。
是;有可能的。 –
是的,這是可能的。我不太瞭解makefile,但是如果你的主要可執行文件被稱爲'test',你可以這樣做:'test:$(CC)test.cpp -o test &&。/ test' – ForceBru