使用makefile编译和运行

时间:2015-01-24 08:20:27

标签: c++ makefile

我是使用makefile的新手。我有四个文件,其中一个是头文件。我想在终端中编写命令: make do nu = 20 。这应该编译所有文件和c ++程序,而nu = 20用于main函数中的argc和argv变量。

但是错误发生了,就是它们没有正确连接。这是makefile 对不起,对于错误,但我对这些东西很新。它应该如何写出来?

nu = 15

main.o: main.cpp ballbounce.h threads.cpp GUI.cpp
        g++ -c main.cpp

threads.o: threads.cpp ballbounce.h main.cpp GUI.cpp
        g++ -c threads.cpp

GUI.o: GUI.cpp ball.h main.cpp threads.cpp
        g++ -c GUI.cpp

run: main.o threads.o GUI.o ball.h
        g++ -o run main.o threads.o GUI.o

do: run
  ./run $(nu)

clean:
        rm main.o threads.o GUI.o run

1 个答案:

答案 0 :(得分:0)

你可以这样做:

修改makefile中的行,使其像这样

do: run
    ./run ${nu} 

然后拨打电话

make do nu=20

当你打电话给它时nu将是20,当你打电话给make而不提供nu

make do

nu将为15(正如您在makefile中声明的那样,与默认值一样)