Linux GCC make檔案的寫法3

來源:互聯網
上載者:User

 包含3個檔案夾

目錄組織圖如下:

inc/hello.h

main/main.c, Makefile

src/hello.c

檔案內容如下:

hello.h:

void hello(char name[]);

main.c:

#include <stdio.h><br />#include "../inc/hello.h"<br />// The second hello.h should in ""<br />int main()<br />{<br /> hello("GCC");<br /> printf("Haha Linux Ubuntu!/n");<br /> return 0;<br />}

其中,第二個包含檔案,hello.h,必須要用"",如果用<>則gcc只會到系統目錄下去搜尋,不會到本目前的目錄下搜尋

就是""在使用者目錄下,<>在系統目錄下,這個在windows上不嚴格, 在linux裡似乎很嚴格

Makefile版本1:

# String declaration<br />objects = main.o hello.o</p><p># Command<br />app : $(objects)<br />cc -o app $(objects)<br />main.o : main.c hello.h<br />cc -c main.c<br />hello.o : hello.c stdio.h<br />cc -c ../src/hello.c</p><p># Search paths<br />vpath %.h /usr/include ../inc<br />vpath %.c ../src</p><p># Clean the intermediate files<br />.PHONY : clean<br />clean :<br />rm app $(objects)<br />

貌似vpath只對 %.o : 後面的有影響,下面的cc -c沒有作用

**************************

確實是這樣的,

%.o : %.c %.h,這句話是make的語句,而下面的

cc -c %.c,這句話是gcc的語句,

而vpath和VPATH設定的是make的搜尋路徑,對gcc的搜尋路徑沒有影響。

gcc設定搜尋路徑為:

cc -c main.c -Iinclude

**************************

Makefile版本2:

# String declaration<br />objects = main.o hello.o</p><p># Command<br />app : $(objects)<br />cc -o app $(objects)<br />main.o : main.c hello.h<br />cc -c main.c<br />hello.o : ../src/hello.c stdio.h<br />cc -c ../src/hello.c</p><p># Search paths<br />vpath %.h /usr/include ../inc<br />#vpath %.c ../src</p><p># Clean the intermediate files<br />.PHONY : clean<br />clean :<br />rm app $(objects)<br />

hello.c:

#include <stdio.h></p><p>void hello(char name[])<br />{<br />printf("Hello %s!/n", name);<br />}<br />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.