簡體   English   中英

makefile運行它編譯的代碼

[英]makefile to run the code it compiles

如果我有將運行的代碼,則將其稱為main.cpp ,並且可執行文件為r.exe ,然后編寫一個具有以下目標的makefile:

compile: 
    g++ -std=c++11 main.cpp -o r

可執行文件r.exei.txto.txt作為兩個參數。 如何將第二個目標添加到makefile中,以便可以運行以下命令,並查看程序的執行情況:

make run i.txt o.txt

我嘗試將第二個目標添加到makefile:

run:
    r.exe $1 $2

例如,但make聲明:“'r'是最新的”和“對'i.txt'等不做任何事情,等等。”

我也嘗試過搜索一段時間,但是“ make”,“ run”和“ variables”或“ arguments”從本質上來說是具有無關內容的搜索防火牆。

您不能通過參數來make類似的操作。 命令make run i.txt o.txt將嘗試建立規則runi.txto.txt

相反,您可以使用變量:

run:
    r.exe ${ARGS}

make run ARGS="i.txt o.txt"

旁注,規則應使它們聲明的文件生效。 因此,您確實希望您的編譯規則如下所示:

r.exe : main.cpp
    g++ -std=c++11 $^ -o $@

compile : r.exe
.PHONY  : compile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM