2015-01-20 40 views
6

我想從文件系統的其他位置運行makefile。我如何傳遞makefile的位置?使用「make」命令指定「makefile」的路徑

如果我站在「/」中,並且我想運行一個能夠抵抗「/ dir/dir2/dir3/makefile」的makefile,我該如何將它添加到make命令中?

我想:

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

,但它並沒有奏效。

+0

可能重複[在Unix中,我可以在目錄中運行'make'而不先cd到該目錄?](https://stackoverflow.com/questions/453447/in-unix-can-i- run-make-in-a-directory-without-cding-to-that-directory-first) – Flynsee 2017-09-15 02:43:29

回答

4

所有相對路徑in makefile將相對於您的當前目錄而不是makefile的目錄。

假設你明白這一點,並且你想要做的事情仍然有效,那麼你需要-f標誌來指定要使用的makefile。 (這是在手冊頁,手冊和--help輸出。)

相反,如果你的意思是你要cd到別處,並運行make那麼也許你正在尋找(cd /some/path && make)

+0

也許cd建議最合適。我想,不同之處在於我是否希望編譯的文件與make文件位於同一個文件夾中(這將是cd示例),或者如果我希望文件與我站在同一個目錄中。我對嗎? – theva 2015-01-20 20:29:47

+0

不僅如此。如果你在makefile中有一個規則說'foo:foo.c'會在當前目錄下創建一個文件'foo',但是也會在當前目錄下查找'foo.c',並且它不會在那裏。 – 2015-01-20 20:31:08

+0

我一直在弄亂我的Makefile,試圖讓'make'識別我在其中指定的'CFLAGS'參數。但它似乎並沒有將這些參數傳遞給'make'。所以我刪除了我的本地'Makefile',並再次運行'make',並繼續運行相同的命令('cc -o ex4.c -o ex4')。我試圖通過'CFLAGS'傳遞'-g -Wall'。有一些主''Makefile'掛在我的操作系統?! – mecampbellsoup 2015-06-03 19:16:02