0

ここで正直に言うと、次のコードについての私の理解はかなり限られています。ただし、私の知る限り、プログラムを「テスト」できるように、ある種の実行可能ファイルを作成する必要があります。しかし、実行可能ファイルがどのように表示されるかわからないか、実行方法がわかりません。または、何かが機能していません。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

どんな助けでも大歓迎です。ありがとう!

4

3 に答える 3

1

試す:

make all

すべてをコンパイルします。

または、all::ターゲットをの前に置くと、とtestBSTree.o:入力するだけですmake。ターゲットを指定しない場合、makeデフォルトでmakefileの最初のターゲットになります。

于 2013-02-11T04:04:27.997 に答える
1

makeallで実行しましたか

それ以外の場合、Makeは最初のターゲットtestBSTree.oを選択します:BSTree2.h

testBSTree.oが最新ではないことを確認し、それを構築して、作業の完了を喜んで終了します。

別の方法として、すべてのターゲットを最初のターゲットとして配置することもできます。そのため、makeを実行するだけです。それが通常行われている方法です。

于 2013-02-11T04:04:33.113 に答える
0

このMakefileを試してみてください、それは私のために働きます:

OBJS=testBSTree.o BSTree2.o

PROGRAMS = testBSTree

all:  $(PROGRAMS)

testBSTree: $(OBJS)
    $(CXX) -o $@ $^

clean:
    rm *.o

(インデントされた行は、スペースではなくタブで意図されている必要があることに注意してください!)

于 2013-02-11T04:10:58.667 に答える