如何创建将创建两个独立可执行文件的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

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

编辑:这也不起作用是有原因的吗?它抱怨在第13行缺少一个分隔符,在那里它编译了第二个程序。

GCC_OPTIONS=-Wall -pedantic -I include

GL_OPTIONS=-lGLEW-lGL-lglutOPTIONS=$(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

在".cpp:"行上方,添加以下内容:

shapes: shapes2

现在,命令make shapes将生成两者(假设源文件存在并且正确(。

最新更新