1
我正在研究Makefiles的美妙世界,這是我第一次嘗試自己的makefile。然而,我在錯誤的牆上打了我的小腦袋,我無法確定原因,我只知道問題出在Makefile中,我做錯了什麼,因爲當我手動編譯我的「項目」時,它會編譯。Fake Makefile會導致未定義的引用和多個定義錯誤
cxx := g++
dirs := obj bld_win32 bld_linux
cpp := $(wildcard src/*.cpp)
obj := $(addprefix obj/,$(notdir $(cpp:.cpp=.o)))
ifeq ($(OS), Windows_NT)
target := bld_win32/engine.exe
flags := -mwindows -lopengl32 -openal32 -lgdi32
else
target := bld_linux/engine
flags := -lX11 -lGL -lopenal -lalut
endif
all: precheck $(target)
precheck:
mkdir -p $(dirs)
$(target): $(obj)
$(cxx) -std=c++11 -Wall -o [email protected] $^ $(flags)
obj/%.o: $(cpp)
$(cxx) -c -o [email protected] $<
是的,我傻,我忘了手動測試編譯對象。萬分感謝! –