如何创建将创建两个单独的可执行文件的makefile?

时间:2013-04-25 03:26:52

标签: compilation makefile

我很擅长制作文件并使用一个项目给我们,我正在扩展它。

此makefile当前需要一个arg,即您要创建的可执行文件的名称。在以下代码中,命令make shapes将为我创建一个名为shapes的可执行文件。

GCC_OPTIONS=-Wall -pedantic -I include
GL_OPTIONS=-lGLEW -lGL -lglut
OPTIONS=$(GCC_OPTIONS) $(GL_OPTIONS)

.cpp:
    g++ $@.cpp Common/InitShader.o $(OPTIONS) -o $@

现在我对我的项目做了什么,创建了它的副本并更改了一些数据以查看它将如何影响程序的输出。原作称为shapes.cpp,另一个称为shapes2.cpp

我尝试的是在当前的g ++行下添加以下行,但无济于事。我试图硬编码文件名的'2'部分,大概是错误的。

g++ $@2.cpp Common/InitShader.o $(OPTIONS) -o $@2

有人可以帮我提出解决方案吗?同样,我有2个单独的cpp文件,我想编译为两个单独的可执行文件。我没有问题将makefile更改为硬编码文件名,但我有点不确定如何做到这一点。

编辑:这有什么理由不起作用吗?它抱怨它在第13行错过了一个分隔符,它编译了第二个程序。

GCC_OPTIONS=-Wall -pedantic -I include

GL_OPTIONS = -lGLEW -lGL -lglut OPTIONS = $(GCC_OPTIONS)$(GL_OPTIONS)

.PHONY: all original modified

all: original modified

original:
    g++ shapes.cpp Common/InitShader.o $(OPTIONS) -o shapes

modified:
    g++ shapes2.cpp Common/InitShader.o $(OPTIONS) -o shapes2

1 个答案:

答案 0 :(得分:1)

在“.cpp:”行上方,添加:

shapes: shapes2

现在命令make shapes将导致两者的构建(假设源文件存在且正确)。