更改main.cpp路径

时间:2018-03-18 12:42:29

标签: c++11 makefile path

我为以下cpp文件夹结构编写了一个makefile:

-build
  makefile
-include
  a.hpp
  b.hpp
-src
  a.cpp
  b.cpp
  main.cpp

,makefile如下:

IDIR =../include
SDIR = ../src
CXX=g++
CFLAGS=-I$(IDIR) -std=c++11

_DEPS = a.hpp b.hpp
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

OBJ = a.o b.o main.o

%.o: $(SDIR)/%.cpp $(DEPS)
    $(CXX) -c -o $@ $< $(CFLAGS)

main: $(OBJ)
    g++ -o $@ $^ $(CFLAGS)

clean: 
    rm -f *o
    rm -f *~
    rm -f main

我想将main放在一个单独的文件夹中:

-build
  makefile
-include
  a.hpp
  b.hpp
-main
  main.cpp
-src
  a.cpp
  b.cpp

我尝试这样做的makefile是:

IDIR =../include
SDIR = ../src
MDIR = ../main
CXX=g++
CFLAGS=-I$(IDIR) -std=c++11 

_DEPS = a.hpp b.hpp
DEPS = $(patsubst %,$(IDIR)/%,$(_DEPS))

OBJ = a.o b.o main.o

%.o: $(SDIR)/%.cpp $(DEPS)
    $(CXX) -c -o $@ $< $(CFLAGS)

main.o: $(MDIR)/main.cpp $(DEPS)
    $(CXX) -c -o $@ $< $(CFLAGS)

main: $(OBJ)
    g++ -o $@ $^ $(CFLAGS)

clean: 
    rm -f *o
    rm -f *~
    rm -f main

但我最终只为main生成了目标文件而其他人没有编译。任何建议。

PS:我想生成多个可执行文件,这就是为什么我要将文件移动到新文件夹并添加main2.cpp等以便稍后执行此操作。

0 个答案:

没有答案