0

我对 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 选项=$(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
4

1 回答 1

1

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

shapes: shapes2

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

于 2013-04-25T03:35:14.283 回答