makefile阅读另一个目录

makefile to read another directory

本文关键字:另一个 makefile      更新时间:2023-10-16

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

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创建, shareall.o 在sub_proj1的文件夹中。但是我不想要这个。我只需要从父目录中引用。它不应在sub_proj文件夹中创建新的'。o'文件。

所以...只需使用 ../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 $@