巢狀Makefile問題解決一例

2022-05-02 12:54:09 字數 2211 閱讀 8027

先看一下目錄結構

總控makefile如下:

1:  cflags=-wall
2:  cc=gcc
3:
4:
5:  subdirs=server client
6:
7:  export cflags cc
8:
9:
10:
11:  all:$(subdirs)
12:
13:  $(subdirs):
14:      make -c $@
15:
16:
17:  clean:
18:      $(rm) server/*.o  server/server
19:      $(rm) client/*.o client/client
20:  .phony:clean
另外兩個makefile分別如下:

1:  server:server.o
2:      $(cc) $(cflags) $^ -o $@
3:
4:  server.o:server.c
5:      $(cc) $(cflags) -c $^ -o $@

1:  client:client.o
2:      $(cc) $(cflags) $^ -o $@
3:
4:  client.o:client.c
5:      $(cc) $(cflags) -c $^ -o $@
當執行總控makefile時,出現如下現象:

無法實現程式的編譯。

解決方法:

方法一、將總控makefile中的$(subdirs)中的兩個路徑都宣告為 偽目標。

1:  cflags=-wall
2:  cc=gcc
3:
4:
5:  subdirs=server client
6:
7:  export cflags cc
8:
9:
10:
11:  all:$(subdirs)
12:
13:  $(subdirs):
14:      make -c $@
15:
16:
17:  clean:
18:      $(rm) server/*.o  server/server
19:      $(rm) client/*.o client/client
20:  .phony:clean server client
再次指向make

方法二、將總控makefile作如下修改

Windows窗體巢狀問題解決

窗體巢狀 經驗豐富的visual basic開發者知道多文件介面 mdi 應用程式能夠包含子窗體,那些子窗體由mdi父窗體管理。但是如果沒有mdi的能力你怎樣實現包含巢狀窗體?例如乙個mdi子窗體也可能需要包含另乙個窗體。有時能夠使用使用者控制項 usercontrol 實現這種功能,但是如果你真的...

mysqldump問題解決(一)

最近在利用mysqldump命令匯出本地資料庫的時候遇到了問題。最後通過各方查詢,發現是版本問題,最後成功解決,遂記錄下來以饗大家。mysqldump h x.x.x.x u root p db name db.sqlmysqldump couldn t execute select column ...

oom問題解決

dalvik虛擬機會為應用程式分配固定大小的heap 如果使用超過了這個heap的大小,且沒有可被 物件,就會報oom。多張較大會迅速占用空間造成oom。我們可以使用一下的方法來減少這種情況的產生 1.減少單張的大小,根據螢幕大小來對bitmap做resize。private void setima...