【问题标题】:makefile to read another directorymakefile 读取另一个目录
【发布时间】:2016-06-18 08:36:00
【问题描述】:

我有一个 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 需要查找位于其父目录中的 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 文件夹中创建新的 '.o' 文件。

【问题讨论】:

    标签: c++ makefile


    【解决方案1】:

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

    【讨论】:

    • 谢谢。它的工作。我在 Proj_Folder 中有一个名为“Include”的文件夹。它包含所有必需的 *.h 文件。我需要将文件夹添加为依赖项。它仅包含 .h 文件。我怎样才能在上面的程序中做到这一点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多