Nasıl bir Makefile Makefile dan aramak? | Netgez.com
SORU
5 ÅžUBAT 2010, Cuma


Nasıl bir Makefile Makefile dan aramak?

Bazı beklenmedik sonuçlar başka bir makefile arama alıyorum. İki makefiles, bir /path/to/project/makefile adında biri /path/to/project/gtest-1.4.0/make/Makefile aradım. Eski ikinci arasın bulmaya çalışıyorum. /Yolu/proje//makefile var

dev: $(OBJ_FILES)
  $(CPPC) $(LIBS) $(FLAGS_DEV) $(OBJ_FILES) -o $(BIN_DIR)/$(PROJECT)
  $(MAKE) -f ./gtest-1.4.0/make/Makefile

clean:
  rm -f ./*~ ./gmon.out ./core $(SRC_DIR)/*~ $(OBJ_DIR)/*.o
  rm -f ../svn-commit.tmp~
  rm -f $(BIN_DIR)/$(PROJECT)
  make -f gtest-1.4.0/make/Makefile clean

/path/to/project/gtest-1.4.0/make/Makefile

all: $(TESTS)

clean:
  rm -f $(TESTS) gtest.a gtest_main.a *.o

Aşağıdaki amir:

cd /path/to/project
make

Çıkışlar:

make -f ./gtest-1.4.0/make/Makefile
make[1]: Entering directory `/path/to/project'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/path/to/project'

Bu komutları ben sorunu ancak:

cd /path/to/project
make clean

Görüyorum

make -f gtest-1.4.0/make/Makefile clean
make[1]: Entering directory `/path/to/project'
rm -f  gtest.a gtest_main.a *.o
make[1]: Leaving directory `/path/to/project'

Anlamıyorum: her iki durumda da, /path/to/project/makefile beni anlatıyor geçerli çalışma dizini giriyor. İlk durum değil mi sence çalışması yapmak (zaman yok) ve ikinci durumda, mümkün bulmak için uygun yönergesi (zaman çıkış söylüyorum ben arıyorum yanlış dizin) henüz çalışır çalıştırmak için rm komut /path/to/project yerine /path/to/makefile/gtest-1.4.0/make/.

Başka bir şey arama makefiles için temel mi kaçırdım? Yaman kavramsal bir hata yaptı, ya da yaygın bir hatadır vurdum? Ne kadar etkili dizinleri değiştirmek ve ikinci bir makefile Ara ilk içinden? Benim anladığım sadece make -f <name> arama yeterli olacaktır.

Bu/3.81 bash gmake olun.

CEVAP
2 Mayıs 2012, ÇARŞAMBA


make -f yerine -C <path> seçeneği kullanmak isteyebilirsiniz. Bu ilk yolu '<path> " make. calles değişiklikler

Örnek:

clean:
  rm -f ./*~ ./gmon.out ./core $(SRC_DIR)/*~ $(OBJ_DIR)/*.o
  rm -f ../svn-commit.tmp~
  rm -f $(BIN_DIR)/$(PROJECT)
  $(MAKE) -C gtest-1.4.0/make clean

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

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • LearnKey

    LearnKey

    19 AÄžUSTOS 2008
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011
  • Tylerron

    Tylerron

    6 AÄžUSTOS 2006