メイクファイルを作成しました。これを変更すると、make
を実行すると1つ以上のターゲットが生成されます。私のプログラムで複数のターゲット用のメークファイルを作成する
私は自己定義済みマクロ(例えばTIME
、REG
と_DEBUG
)を使用し、私は私のMakefileの私には1つのアウト定義済みのマクロを使用してターゲット、REG
と1とREG
と別のものを生成することをそのようにしたいと思いますおよびTIME
。
私が望むのは、Makefileからの合理的な希望です。そうでない場合は、教えてください。
PS:
勧告は喜ん
を除外されるだろう、私はここで を使用していますが、私のMakefileです:@trojanfoeの回答に基づいて
CXX = g++
SOURCES = random.cpp
OBJECTS = $(SOURCES:.cpp=.o)
EXECUTABLE = random-64bit
DEBUG = -g -p -ggdb
CXXFLAGS = -Wall -ansi -pedantic -W -pipe -O3 -std=gnu++0x -march=native \
--fast-math -ftree-vectorize -ffast-math -D NDEBUG \
-D TIME -D REG -D _DEBUG
#CXXFLAGS+=$(DEBUG)
DEPS = def_type.hpp \
ls_regression.hpp \
network.hpp \
statistics.hpp \
knot.hpp \
nachbarn.hpp \
$(SOURCES:.cpp=.hpp) \
zufallszahlengenerator.hpp
INCLUDES = -I/home/phymihsa/eigen/ -I/home/phymihsa/boost_1_48_0
LIBPATH = -L/usr/local/lib64
LDFLAGS = -lm
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS) $(DEPS)
$(CXX) $(LIBPATH) $(OBJECTS) -o [email protected]
.cpp.o: $<
$(CXX) $(LIBPATH) $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -c $<
%.o: %.cpp
$(CXX) $(LIBPATH) $(INCLUDES) $(LDFLAGS) $(CXXFLAGS) -c $<
.PHONY: clean
clean:
rm -rf $(OBJECTS) $(EXECUTABLE) *~ p1 *.o
EDIT
、私はそれが配列を使用することが可能かどうかを知っているだろう
OBJECTS = $(SOURCES:.cpp=_none.o) $(SOURCES:.cpp=_reg.o) $(SOURCES:.cpp=_reg_time.o)
EXECUTABLE = $(SOURCES:.cpp=_none) $(SOURCES:.cpp=_reg) $(SOURCES:.cpp=_reg_time)
それぞれに1つずつ書き込むのではなく、
あなたはCMakeを考えましたか?このようなことは本当にうまいです。 – spraff
@spraff、私はそれに精通していないので、私はCMakeについて考えていない。 – Eagle
よく、私はそれを試してみることを強くお勧めします。私は一度も振り返らない。 – spraff