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

  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013