makefile读取另一个目录

时间:2016-06-18 08:36:01

标签: c++ makefile

我有一个c ++项目。在我的Project文件夹中,我有三个子项目文件夹。

Proj_Folder
   Sub_Proj1
       proj1.cpp
       makefile
   Sub_Proj2
      proj2.cpp
      makefile
   Sub_Proj3
      proj3.cpp
      makefile
ShareAll.cpp

我的所有子项目都使用ShareAll.o文件。 在Sub_Proj1中,我有一个makefile。该makefile需要查找位于其父目录中的ShareAll.o。 我尝试了以下代码。

OBJS =  ShareAll.o proj1.o

proj1: ShareAll.o proj1.o
    ${CXX} ${CFLAGS} -o proj1 ${OBJS}

proj1.o : proj1.cpp
    ${CXX} ${CFLAGS} proj1.cpp

ShareAll.o : ../ShareAll.cpp
    ${CXX} ${CFLAGS} ../ShareAll.cpp

此makefile在Sub_Proj1的文件夹中创建 ShareAll.o 。 但我不想要这个。我只需要从父目录中引用。它不应在sub_proj文件夹中创建新的' 文件。

1 个答案:

答案 0 :(得分:3)

所以......只使用../ShareAll.o代替ShareAll.o

OBJS =  ../ShareAll.o proj1.o

proj1: ${OBJS}
        ${CXX} ${CFLAGS} -o $@ $+

proj1.o : proj1.cpp
        ${CXX} ${CFLAGS} -c $< -o $@

../ShareAll.o : ../ShareAll.cpp
        ${CXX} ${CFLAGS} -c $< -o $@