我在这里说实话,我对以下代码的理解相当有限。但是,据我所知,应该创建某种可执行文件,以便我可以“测试”该程序。但是我要么不确定可执行文件的样子,要么我不确定如何运行它。或者某些东西不起作用。所有makefile都是创建一个testBSTree.o,我真的不知道如何处理这个文件。
# Makefile
# a makefile for the stack example.
#
# SHELL = /bin/sh
# TOP = .
# CURRENT_DIR = .
# CPP = /lib/cpp $(STD_CPP_DEFINES)
CXX = g++
# CCOPTIONS =
# CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
# RM_CMD = $(RM) *.o core
SRCS= testBSTree.cpp \
BSTree2.cpp
OBJS= testBSTree.o \
BSTree2.o
testBSTree.o: BSTree2.h
BSTree2.o: BSTree2.h #?
#link.o: link.h #?
PROGRAMS = testBSTree
all:: $(PROGRAMS)
testBSTree: $(OBJS)
$(CXX) -o $@ $(OBJS)
#$(CXX) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
clean::
$(RM) testBSTree
latex::
latex BSTree2.tex
###########################################################################
# common rules for all Makefiles - do not edit
emptyrule::
clean::
rm *.o
非常感谢任何帮助。谢谢!
答案 0 :(得分:1)
尝试:
make all
编译所有内容。
或者将all::
目标置于testBSTree.o:
之前,然后您只需输入make
即可。如果未指定目标,则make
默认为makefile中的第一个目标。
答案 1 :(得分:1)
你有没有运行它 全部
否则Make会选择你的第一个目标 testBSTree.o:BSTree2.h
发现testBSTree.o不是最新的,构建它并愉快地放弃完成它的工作。
作为替代方案,您可能希望将所有目标作为第一个目标,因此您只需运行make。这就是通常的方式。
答案 2 :(得分:0)
试试这个Makefile,它对我有用:
OBJS=testBSTree.o BSTree2.o
PROGRAMS = testBSTree
all: $(PROGRAMS)
testBSTree: $(OBJS)
$(CXX) -o $@ $^
clean:
rm *.o
(请注意,缩进的行应使用制表符,而不是空格!)