Makefiles - Derleme .cpp src/ dosyaları ./o'n/, o zaman ikili bağlantı s | Netgez.com
SORU
25 Mayıs 2010, Salı


Makefiles - Derleme .cpp src/ dosyaları ./o'n/, o zaman ikili bağlantı s

Bu yüzden, proje dizini bu gibi görünüyor:

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

Ben ne istiyorum benim makefile yapacağını derleyin .cpp dosyaları /src klasör .o dosyaları /obj klasör, sonra da bağlantı .o dosyaları /obj çıkış halinde ikili kök klasör /project.

Sorun, hiçbir deneyimi yanında Makefiles var, ve gerçekten bunu yapmak için aramak için ne olduğundan emin değilim.

Ayrıca, bu bir "iyi" bir şekilde bunu yapmak için, ya da orada yapmaya çalıştığım şey, daha standart bir yaklaşım mı?

CEVAP
25 Mayıs 2010, Salı


Soru bir parçası Makefile

Bu bir genelleme yapmak gerekmez sürece oldukça kolaydır, aşağıdaki kod, (ama g yakın sekmeleri boşluk girinti değiştir) gibi bir şey deneyin

CPP_FILES := $(wildcard src/*.cpp)
OBJ_FILES := $(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
LD_FLAGS := ...
CC_FLAGS := ...

main.exe: $(OBJ_FILES)
   g   $(LD_FLAGS) -o $@ $^

obj/%.o: src/%.cpp
   g   $(CC_FLAGS) -c -o $@ $<

Grafik nesil otomatik bağımlılık

""Çoğu sistemler olun. bir özelliği olmalı Makefile vücut sonuna GCC ile -MMD ekleyerek derleme bir yan etkisi olarak tek geçişte yapılabilir CC_FLAGS -include $(OBJFILES:.o=.d) bayrak:

CC_FLAGS  = -MMD
-include $(OBJFILES:.o=.d)

Ve çocuklar zaten her zaman GNU Make Manual etrafında belirtildiği gibi, son derece yararlı olacaktır.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • HBO

    HBO

    17 Mayıs 2006
  • Qmusic Romania

    Qmusic Roman

    8 Temmuz 2011