0
這是我第一次嘗試創建用於編譯的make文件。我正在編寫一個項目,我希望在編譯時劃分文件,播種我有3個文件夾:src,bin和header。今天我編譯命令gcc file1.c中file2.c中file3.c中-lncursesMakefile:將二進制文件,源文件和頭文件拆分爲目錄
如何我寫一個makefile來實現這一目標?
這是我第一次嘗試創建用於編譯的make文件。我正在編寫一個項目,我希望在編譯時劃分文件,播種我有3個文件夾:src,bin和header。今天我編譯命令gcc file1.c中file2.c中file3.c中-lncursesMakefile:將二進制文件,源文件和頭文件拆分爲目錄
如何我寫一個makefile來實現這一目標?
這將做到這一點:
bin/myBinaryName: file1.c file2.c file3.c
gcc $^ -Iheader -lncurses -o [email protected]
vpath %.c src
有更復雜的方法比這個,但我懷疑你正在服用的同一課程的誰問非常類似的問題在過去幾周的其他新人。
如果你想要一個更基本的介紹,或更復雜的makefile文件,你可以嘗試不同的問題。
編輯:
讓我們嘗試一些簡單。寫此生成的文件(並將其命名爲makefile
):
all:
echo hello world
注意,之前的「回聲」的空格是TAB。現在在命令行上嘗試make
。怎麼了?
bin/myBinaryName是一個文件夾?這個makefile應該放在src和bin的根文件夾中,還是放在src文件夾中? – user265767
@ user265767,你沒有指定,所以我認爲你想要二進制文件進入'bin /',並將其命名爲'myBinaryName'。該makefile屬於父目錄(即根文件夾)。 – Beta
當然,bin/myBinaryName:file1.c file2.c file3.c應該看起來像這樣,而不是像這樣:bin/myBinaryName:file1.c file2.c file3.c,其中:被刪除?刪除後:make stop抱怨該bin/myBinaryName:沒有這樣的文件或目錄。現在讓抱怨Permission denied,每個文件和文件夾都對所有用戶都有讀寫權限? – user265767