1. 程式人生 > >一份通用makefile,自動遍歷子目錄原始檔,自動生成依賴。

一份通用makefile,自動遍歷子目錄原始檔,自動生成依賴。

這份makefile可以將當前makefile所在資料夾以及所有子資料夾中的cpp檔案打包成靜態庫/動態庫/可執行檔案.
自動生成所有依賴關係,修改任何檔案都可以觸發重新編譯相應依賴的檔案。

在Ubuntu 和 OSX 系統測試通過。

SHELL = /bin/bash

AllDirs := $(shell ls -R | grep '^\./.*:$$' | awk '{gsub(":","");print}') .
Sources := $(foreach n,$(AllDirs) , $(wildcard $(n)/*.cpp))
Objs := $(patsubst %.cpp,%.o, $(Sources))
Deps := $(patsubst %.cpp,%.d, $(Sources))
StaticLib := libyy.a
DynamicLib := libyy.so
Bin := yy

#AllLibs : $(DynamicLib)
#AllLibs : $(StaticLib) 
AllLibs : $(Bin)

CC = g++
CXXFLAGS = -g -O2 -fPIC -Wall
CPPFLAGS = $(foreach n,$(AllDirs) , -I$(n))
LDFLAGS = -lstdc++

$(StaticLib) : $(Objs)
	ar rcs 
[email protected]
$^ $(DynamicLib) : $(Objs) g++ -shared -o [email protected] $^ $(LDFLAGS) $(Bin) : $(Objs) g++ $(Objs) -o [email protected] %.d : %.cpp $(CC) -MT"$(<:.cpp=.o) [email protected]" -MM $(CXXFLAGS) $(CPPFLAGS) $< > [email protected] sinclude $(Deps) .PHONY : clean clean: rm -f $(Objs) $(Deps) $(StaticLib) $(DynamicLib) $(Bin)


相關推薦

通用makefile,自動子目錄原始檔自動生成依賴

這份makefile可以將當前makefile所在資料夾以及所有子資料夾中的cpp檔案打包成靜態庫/動態庫/可執行檔案. 自動生成所有依賴關係,修改任何檔案都可以觸發重新編譯相應依賴的檔案。 在U

一點一點學寫Makefile(6)-當前目錄原始檔及其子目錄原始檔

有時候,我們在開發的時候需要將本次工程的程式碼分成多個子目錄來編寫,但是在Makefile的編寫上卻是個問題,下面我就教大家怎麼構建帶有子資料夾的原始碼目錄的自動掃描編譯 下面這張圖是我的檔案樹 這裡面src目錄下是我的原始碼,我將功能程式碼分成了三個子模組,分別為tes

關於checkbox對應張表時如何

scrip 代碼 input script text sub val 獲取 type html代碼: <table> <tr> <td><input name=‘one‘ type=‘checkbox‘ valu

.map(function(item)...)這個是按hashcode自動怎麽才能按照我想要的順序呢?

alt data html 自動 data- 順序 每次 func -s 上圖是我前端的遍歷代碼。我的item上有一個name的字段,分別是營業執照,稅務登記證和經營許可證,我怎麽設置才能讓函數每次遍歷的時候按照這個順序遍歷,而不是item自帶的順序呢?

C++ 二叉樹非遞迴(別貪心次迴圈訪問一個節點前序2例外)

前序遍歷方法1: void preOrder1(BiNode * rootN) { if (rootN != nullptr) { stack<BiNode*> nodeSta; nodeSta.push(rootN); BiNode* curNode; wh

all-makefiles-under函式不是遞迴子目錄

include $(call all-makefiles-under,$(LOCAL_PATH)) 在Android的原始碼中的mk檔案中,我們經常會看到上面這句話,從字面意思看是,include目錄下所有的mk檔案,那麼這裡面有兩個坑, 1.只include Android.mk檔案,叫其他名字的

thinkphp實現獲取某條資料前端頁面獲取這條資料時不用獲取值直接呼叫這條資料

首先獲取這條資料的id值: $cate_id = (int) $this->_param('cate_id'); 其次:獲取屬於這個id值的那條資料(根據前端需要獲取這條資料的那個欄位,$cate_name) $cate_name = D('ele_cate')->where

騰訊優測優分享-手機應用自動的實現

摘要: 騰訊優測是專業的app自動化測試平臺,安卓平臺上的自動化遍歷如果框架嫌麻煩可以嘗試下,我在工作中也在不斷地學習探索,目前處在探索的初期階段。 關鍵詞: 安卓自動化遍歷  android適配  移動研發 在我看來,遍歷自動化的難點主要集中在以下兩個方面:

利用UiAutomator寫一個自動渠道包關鍵功能的指令碼

本人在做自動化測試的過程中,出現了一個需求。原因是,在發出去的渠道包裡面,偶然一次有兩個渠道包微博登入失敗的bug,所以想著利用UiAutomator寫了一個自動遍歷每個渠道包的登入方式的指令碼。經過嘗試第一版終於完成,分享程式碼和思路,供大家參考。 思路:把所有渠道包放在

java IO流練習:檔案複製、子目錄、複製所有子目錄

import org.junit.Test; import java.awt.*; import java.io.*; import java.net.URI; import java.net.URISyntaxException; import java.t

AccessibilityService——實現自動點贊功能

/** * Created by jiangzn on 17/2/6. */ public class MyAccessibilityService extends AccessibilityService { @Override protected void onServiceConn

Linux C 程式設計之子目錄及所有檔案

轉載自:http://blog.csdn.net/jeff_nie/article/details/8464900 遍歷子目錄用的方法是遞迴呼叫,先判斷子目錄流指標所指向的檔案是否為目錄檔案。如果是,該函式將呼叫自身去遍歷子目錄;如果不是,則輸出檔名,繼續遍歷當前目錄

C/C++:子目錄列舉檔案FindFirstFile + FindNextFile

  平時寫程式時經常會用到的遍歷子目錄列舉檔案的功能,用 Windows API 函式 FindFirstFile() 和 FindNextFile() 直接實現起來會相當繁瑣,有許多細節需要注意和記憶,要在短時間內寫出可以正常工作的、沒有BUG的、能夠遞迴遍歷多層子目錄並列

種快速對集合返回方法

要對一個集合(比如:List)進行遍歷返回一個Map物件,其中物件的一個屬性作為key 引入google的guava包可以快速解決這個問題 maven依賴: <dependency> <groupId>com.googl

appium 自動的參考程式碼

背景 上次支付寶沙龍分享了基於appium的自動遍歷小工具, 有些朋友感興趣, 想看下程式碼, 為了給大家一個參考, 我這裡貼部分的關鍵演算法程式碼給大家吧 這份程式碼寫的很挫, 功能也很簡單, 只是個演示demo, 是為了證明appium can do IT. 我計

集合過程iterator 添加刪除元素報異常

exc asn 一致性 使用 遍歷 one mov exceptio 刪除 list set 遍歷過程中添加或者刪除元素,報異常。 使用iterator 也會報異常 ConcurrentModificationException remove只能用叠代器的remov

復習 使用for、while循環文件數據類型轉換

數據類型 for while 1. python訪問文件通過內置函數open打開文件,看一下open函數解釋:打開文件返回的是一個文件對象fd = open('/tmp/tmp.txt')查看他的方法:關閉文件:fd.close()向文件內寫入:fd = open('/tm

List:forforeach還是Iterator?

array img 發現 結構 需要 級別 索引 process arraylist 轉自:http://blog.csdn.net/nazir2513/article/details/51168345 先說現象: 如果是 ArrayList,用三種方式遍歷的速度是for&

通過Java對象來成員方法成員變量構造函數

return pri typename static spa tde log 繼承 red 1 package classTest; 2 3 import java.lang.reflect.Constructor; 4 import java.lang.ref

jquery下標傳入事件防止重復執行事件

文化 美的 大米 東北 雲南 img 層次 query 平時 let thisdata = [{"imgUrl":"../img/index/eastnorth.jpg","title": "東北","content":"東北菜源於魯菜,又融合了多個少數民族的特色風格,肉菜