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

  • Autocar

    Autocar

    11 Mart 2006
  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • DJPixcell

    DJPixcell

    20 NİSAN 2007