[C++] 我可以編譯所有.cpp文件在src / to .o's in obj /中,然後鏈接到./?中的二進製文件。


Answers

通配符也適用於我,但我想給那些使用目錄變量的人留下一個便箋。 總是對文件夾樹(不反斜杠)使用斜杠,否則會失敗:

BASEDIR = ../..
SRCDIR = $(BASEDIR)/src
INSTALLDIR = $(BASEDIR)/lib

MODULES = $(wildcard $(SRCDIR)/*.cpp)
OBJS = $(wildcard *.o)
Question

我的項目目錄如下所示:

/project
    Makefile
    main
    /src
        main.cpp
        foo.cpp
        foo.h
        bar.cpp
        bar.h
    /obj
        main.o
        foo.o
        bar.o

我想讓我的makefile執行的操作是將/src文件夾中的所有.cpp文件編譯為/obj文件夾中的.o文件,然後將/obj所有.o文件鏈接到頂層的輸出二進製文件中文件夾/project

我幾乎沒有使用Makefiles的經驗,並且我不確定搜索什麼來完成此任務。

此外,這是一個“好”的方式來做到這一點,還是有一個更標準的方法來做我想做的事情?