我很擅长制作文件并使用一个项目给我们,我正在扩展它。
此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
答案 0 :(得分:1)
在“.cpp:”行上方,添加:
shapes: shapes2
现在命令make shapes
将导致两者的构建(假设源文件存在且正确)。