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

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • foreignimage

    foreignimage

    13 HAZİRAN 2006
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011