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

  • After Effects Tutorials w/ Mikey

    After Effect

    24 HAZİRAN 2009
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • kylediablo

    kylediablo

    8 Ocak 2007