国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

用C++語言做Linux開發(fā)工具之粘合劑Makefile

2024-08-27 23:57:25
字體:
供稿:網(wǎng)友

我想通過“粘合劑”這個詞來表達將多個工具粘合起來的“膠水”。例如,通過shell腳本,我們可以把OS命令,sed指令,awk指令,其它腳本文件等串聯(lián)起來,發(fā)揮它們的合力。在linux C++編程中,我們不可避免地會使用用C++語言做Linux開發(fā)工具粘合劑makefile文件。通過,它我們可以把編譯指令,生成文檔操作,清除操作等等串聯(lián)起來。從某種意義上來看,它也相當于一個粘合劑。

用C++語言做Linux開發(fā)工具粘合劑Makefile的出發(fā)點是,維護好一個項目中眾多文件的依賴關(guān)系,由此得到一個源程序的拓撲圖。當我們只修改圖中某個結(jié)點時,重新編譯時就只需要將拓撲圖中關(guān)聯(lián)的鏈路進行編譯就好了。由此,大大縮短了編譯的時間。make有兩大概念:dependencies和rules。規(guī)則rule即針對每一個依賴關(guān)系 dependency定義一個操作規(guī)則。這個細粒度的分離,就可以使我們可以定制軟件構(gòu)建的行為。例如,修改使用的編譯器,修改includepath, 修改libpath, 修改編譯選項等等。我們常見的VC中的nmake,功能和make是類似的。

make使用的重點和難點是編寫用用C++語言做Linux開發(fā)工具粘合劑Makefile文件。Makefile的語法相對其它語言來說是很不一樣的,我們要特別注意TAB鍵和空格鍵的區(qū)別。有很多工具可以用來幫助我們生成Makefile。最出名的就是GNU的autoconf了。一個GNU程序的編寫,需要autoscan, aclocal, autoconf, automake這四個工具。

我們知道GNU軟件安裝的三步曲是:./configure, make, make install。其中./configure就是根據(jù)autoconf, alocal等工具生成一個makefile文件。make指令就是調(diào)用make指令來根據(jù)makefile文件的規(guī)則來編譯源程序。而make install就是執(zhí)行makefile中的install規(guī)則指出的操作(一般是copy操作)。而make clean就是執(zhí)行makefile中的clean規(guī)則指出的操作(一般是rm操作)。我們用Eclispe+CDT開發(fā)Managed C++ Project時,它就是通過objects.mk,subdir.mk,sources.mk三個文件來生成Makefile。我們注意觀察編譯時的輸出信息,就可以看到顯示的Makefile文件的內(nèi)容。

可以說,如果想編譯出跨平臺的C++程序,那么用C++語言做Linux開發(fā)工具Makefile是一種最方便的機制。

OCI公司為Douglas C.Schmidt的ACE,TAO開源社區(qū)編寫了一段偉大的perl腳本--MPC。它由平臺信息,一個規(guī)則文件,源代碼,生成用戶想要的工程文件,例如Make, Nmake, Visual C++ 6, Visual C++ 7等等。Google Web Tookit, Celtix做的事情與之類似,不過它們是針對JAVA的,而MPC是針對C++的。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 普兰县| 左云县| 开封县| 长春市| 宜宾县| 乾安县| 邵武市| 安阳县| 勃利县| 盘山县| 潢川县| 利辛县| 靖远县| 西充县| 巴里| 五大连池市| 扶风县| 吉水县| 阿克苏市| 灵璧县| 阜阳市| 东港市| 汉沽区| 临清市| 石门县| 缙云县| 芜湖市| 云和县| 石棉县| 枣阳市| 阜新| 武隆县| 墨脱县| 高碑店市| 北辰区| 康保县| 平和县| 哈尔滨市| 沂源县| 铁岭市| 镇康县|