2015-01-20 10 views
6

Dosya sistemindeki başka bir yerden bir makefile çalıştırmak istiyorum. Makefile'nin yerini nasıl geçebilirim?"make" komutunu kullanarak "makefile" yolunu belirtme

"/" içinde duruyorsam ve "/ dir/dir2/dir3/makefile" ye direnen bir makefile çalıştırmak istiyorsam, bunu make komutuna nasıl eklerim?

Denedim:

make --file=dir/dir2/dir3/makefile 

ama işe yaradı etmedi.

+0

Olası kopyası [In Unix, bu dizine önce cd'ing yapmadan bir dizinde 'make' yapabilir miyim?] (Https://stackoverflow.com/questions/453447/in-unix-can-i- -komut-in-a-dizin-olmadan-dizin-için-önce-dizin) – Flynsee

cevap

4

'daki tüm göreli yollar makefile, makefile dizininiz değil, geçerli dizininizle göreli olacaktır.

Bunu anladığınızı ve ne yapmak istediğinizin hala işe yaradığını varsayarsak, kullanılacak makefile belirtmek için -f bayrağını istersiniz. (Adam sayfasında, manuel ve --help çıktıda hangisi.)

yerine, ne demek sen başka bir yere cd istiyoruz ve belki de (cd /some/path && make) aradığınız sonra yapmak çalıştırmak ise?

+0

Belki de CD öneri en uygun. Fark ettim ki, derlenmiş dosyaların make dosyasıyla aynı klasörde olmasını (cd örneği) mi yoksa dosyaların durduğum yerde aynı direk olmasını mı istiyorum. Ben haklı mıyım – theva

+0

Bundan daha fazlası. Eğer 'foo diyor makefile bir kural varsa: geçerli dizinde bir dosya' foo' yaratacak hem de geçerli dizinde foo.c' 'arayacaktır foo.c' ve onu gitmiyor orada ol. –

+0

Makefile'mle, orada belirttiğim CFLAGS argümanlarını tanımayı denemeye çalışıyorum. Ama bu arjların 'make''e geçtiği görülmedi. Bu yüzden yerel Makefile'mı çıkardım ve tekrar 'make' komutunu çalıştırdım ve aynı komutu (“cc -o ex4.c -o ex4”) çalıştırmaya devam ettim. CFLAGS aracılığıyla -g -Wall'ı geçmeye çalışıyordum. Benim işletim sistemi etrafında asılı bazı usta Makefile var mı ?! – mecampbellsoup