導航:首頁 > 源碼編譯 > 項目編譯系統

項目編譯系統

發布時間:2022-04-30 03:37:08

A. 怎麼在sublime裝html編譯系統

Sublime Text幾乎是任何開發者在其工具箱的必備應用程序。Sublime Text是一款跨平台的,高度可定製的,高級的文本編輯器,既適合全功能的IDE(出了名的資源匱乏),又可匹配命令行編輯器,例如Vim和Emacs(具有陡峭的學習曲線)。 Sublime Text如此受歡迎的其中一個原因就是它的可擴展插件架構。這使得開發人員可以輕松使用新功能,例如代碼完成,或遠程API文檔嵌入,來擴展Sublime的核心功能。Sublime Text的插件並不是開箱即用的——通常需要通過一個叫Package Control的第三方軟體包管理器來安裝。要在Sublime Text中安裝Package Control,請遵照其網站上的安裝指南。 在這篇文章中,我將介紹10個JavaScript開發人員必備的Sublime插件,每一個都可以幫助你改進工作流程,讓你更高效。下面,就讓我們開始吧! 1也有一個很棒的在線互動工具,你可以使用這個工具粘貼你的代碼查看即時反饋。 3. JsFormat JsFormat基於JS Beautifier,可以自動幫助你格式化JavaScript和JSON。如果你只單獨使用它的JSON格式,也是可以的。但對我來說,它的最大優勢出現在當我工作於其他開發人員的代碼,或我自己在很久以前寫的代碼的時候。 這樣的代碼往往是難以閱讀,但是遵循一種通用的代碼格式樣式是有幫助的。雖然格式化可能不適合每一個人,但確實可以通過引入一個共同的結構來幫助開發人員讀懂代碼。Linter雖然關注到這一點,但不一定全面做到,並且不會自動修復格式。代碼格式化節省了大量的時間,避免了大量令人頭痛的問題。 安裝好了之後,要使用JSFormat,先進入JS文件,然後在Windows / linux上按Ctrl + Alt + f ,或在Mac上按 Ctrl + ⌥ + f 。當然也可以使用上下文菜單。 你也許會想:「要是我不喜歡它們設計JavaScript樣式的方式呢?」 別擔心! JsFormat不但基於JS Beautifier設置,而且高度可配置。要調整適合於Sublime Text 3,請這樣做:Preferences -> Package Settings -> JsFormat -> Settings – Default 然後根據自己的喜好編輯JSON設置。 4. DocBlockr 將注釋添加到你的代碼中有時是一件非常非常痛苦的事情。雖然很多人都不喜歡干這件事,但又絕對是有必要的。 DocBlockr可通過製造簡單的注釋來減輕一些痛苦。安裝DocBlockr後,所有你需要做的是,用 /* 或 /** 開始一行代碼,然後剩下的就都可以交給它了。如果你在函數上面以 /**開頭,那麼它會基於JSDoc格式為你生成注釋。有些東西雖然你以前從來沒有用過,但一旦用過之後,你會懷疑自己以前是怎麼活下來的,DocBlockr就是其中的一個例子。 DocBlockr支持許多其他的語言,包括:CoffeeScript,TypeScript、php、ActionScript、Haxe、Java、Apex、Groovy、Objective C、C、C++以及Rust。 5.SideBar Enhancements Sublime Text在側邊欄文件樹中可用於處理文件的選項非常少。簡單地說,SideBar Enhancements可修復這個問題。這款插件特別為文件和文件夾提供了一個「move to trash」的選項,一個「open with..」選項,以及一個剪貼板。它也可以讓你在web瀏覽器中打開文件,復制文件內容作為data:uri base64 (這在CSS中嵌入圖像特別方便),並提供大量的搜索操作。此外,它可以很好地與SideBarGit集成,直接從側欄提供Git命令。 隨著JavaScript代碼庫規模的不斷擴大,於是,找到一種瀏覽項目並處理項目文件的合理手段迫在眉睫。因此,這個插件就成為了必需品。 6. AngularJS 由Angular-UI團隊開發,並且可能是這些SublimeText插件中比較大(但也更有用)的軟體包之一。它的主要功能包括: 核心AngularJS指令(ng-model,ng-repeat等)的代碼完成 自定義指令的指令完成 指令、控制器和過濾器的速食麵板搜索 Angular相關的代碼片段 核心Angular JS指令的GoToDocs Angular是一個大型的庫,AngularJS出乎意料地有用。你可以在項目的主頁上閱讀它的很多設置。 要利用這個插件語法高亮的優勢,那麼你需要到View -> Syntax -> HTML (Angular.js)中改變你的HTML文件的視圖類型。 7.TypeScript TypeScript是JavaScript編譯為普通JavaScript的一個類型超集。這對於普通開發者而言,可能不知道它也沒什麼大的關系,但是今年三月出來的小公告——Angular 2將建造在TypeScript上,意味著,如果你工作於Angular的話,並且你打算以後使用Angular2的話,那麼這個插件是必備的。 基於微軟的支持,這款插件添加了代碼完成,正確的語法高亮,代碼格式化和擴展導航功能到TypeScript項目。它還配備了一個構建系統,允許你編譯TypeScript文件為JavaScript。 要訪問構建系統可以這么做 Tools -> Build System,然後選擇TypeScript 。接著用 .ts 結尾打開一個文件,選擇Tools -> Build,或者乾脆按 Ctrl + B。你會被要求構建參數,之後插件將在同一目錄中輸出編譯好的JavaScript文件。唯一需要注意的是,它需要Node。 從插件的角度說,它提供了「工作於TypeScript代碼時加強版的Sublime Text體驗」。千真萬確,從上述臃腫的IDE中,它做了一個令人耳目一新的改變。 8.Handlebars 如果你正在使用Ember.js,或只是將Handlebars作為模板語言一種選擇,那麼你不能沒有它。沒有它的話,你還不如乾脆關掉所有的語法高亮。 除了語法高亮(在個別模板文件和腳本標簽的內聯模板中都有這個功能),它還提供了用於觸發各種表情的選項卡。例如,鍵入 x-temp並按 TAB鍵會產生: <script type="text/x-handlebars" data-template-name=""></script> 另外,鍵入 ifel 再按TAB鍵,你會得到: {{#if }} {{else}} {{/if}}> 很方便,是吧? 在這個項目的主頁上還有一系列完整的代碼片段。 9.Better CoffeeScript Better CoffeeScript是原先CoffeeScript-Sublime-Plugin的一個分支——然而,不幸的是,CoffeeScript-Sublime-Plugin似乎已被其創建者遺棄,只能工作於SublimeText 2。 此款插件不僅為那些工作於CoffeeScript的人提供了非常需要的語法高亮功能,而且還有其他很多功能。它增加了一堆命令到Sublime(可通過命令面板或各種快捷鍵訪問),比如運行語法檢查,編譯文件,以及顯示編譯好的JavaScript。它還配備了片段和工作於cake (Make對於CoffeeScript的簡化版本)的構建系統。 你可以在此項目的主頁上仔細閱讀插件的許多設置和選項。 10. jQuery 我知道現在的jQuery在很多地方看似都將會失寵,但它仍然非常有用,如果你不打算建立一個完全互動的網站,或者你只是想添加功能到現有的應用程序的話。 這個插件提供了額外的語法高亮和幾乎所有jQuery方法的片段。通過輸入方法名稱並選擇合適的匹配就可以訪問這些片段——就是這么簡單!我特別喜歡這個功能,因為它節省了我很多原本要用於記憶方法特徵以及查詢jQuery API文檔的時間。 例如,鍵入 $.a 會出來一個讓我選擇 $.ajax()的選項,而 $.ajax()可以擴展到: $.ajax({ url: '/path/to/file', type: 'default GET (Other values: POST)', dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)', data: {param1: 'value1'}, }) .done(function() { console.log("success"); }) .fail(function() { console.log("error"); }) .always(function() { console.log("complete"); }); 真是太棒了! 結論 這10款在JavaScript開發中必備的Sublime插件,講到這里就結束了。我只用過它們中的一兩個,因此歡迎大家談談你們在用過之後的體驗感受。當然,如果遺漏了你最喜歡的插件的話,也請在中讓我知道,我會考慮將它添加到列表中。 最後一點,請記住,Sublime Text不是免費軟體。但它有無限的試用版(盡管會有各種煩人的畫面出現),而單個用戶的許可費用是$ 70。如果你一天中的大部分時間都要使用文本編輯器,那麼這將會是一筆物有所值的投資!

B. C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(2)項目編譯系統擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。

C. C語言編譯系統哪個比較好用

下載GCC
MinGW是Minimalistic
GNU
for
Windows
的縮寫。她是一個建立在GCC和binutils
項目上的編譯器系統。和其他GCC的移植版相比,她可以說是最接近Win32的一個了。因為,MinGW幾乎支持所有的Win32API,這也是MinGW的特色之一。她所連接的程序,不需要任何第三方庫就可以運行了。在某種程度上看,MinGW更像是VC的替代品。
獲得與安裝
MinGW可以從MinGW的官方網站
http://www.mingw.org
上獲得。
如果,你要安裝MinGW,那麼你有兩種安裝方案。
安裝方案一:
首先,你要從
http://www.mingw.org/download.shtml
上下載如下幾個壓縮包。
gcc-core
C語言編譯器
gcc-c++
C++語言編譯器
mingw-runtime
MinGW的運行時庫(這個必須安裝)
win32api
win32的API函數頭文件和連接庫
binutils
MinGW的匯編器和連接器等基礎工具
gdb
MinGW中的調試工具
mingw32-make
Make工具,用以更好的管理你的項目
然後,將上述文件逐一下載,然後全部解壓縮到一個目錄下就可以了,我這里假設你是移動到$(MINGW)這個目錄下了。這樣,你的MinGW就算安裝成功了。
最後到DOS終端上,將當前目錄轉換成
$(MINGW)/bin
下。輸入C:\>gcc
-v
看到一段gcc的版本信息,這就能說明,你的gcc已經可以正常工作了。

D. 如何在Windows平台下使用GCC編譯器

MinGW是指只用自由軟體來生成純粹的Win32可執行文件的編譯環境,它是Minimalist GNU on Windows的略稱。

實際上 MinGW 並不是一個 單純的C/C++ 編譯器,而是一套 GNU 工具集合。除開 GCC 以外,MinGW 還包含有一些其他的 GNU 程序開發工具 (比如 gawk bison 等等)。
開發 MinGW 是為了那些不喜歡工作在 Linux(FreeBSD) 操作系統而留在 Windows 的人提供一套符合 GNU 的 GNU 工作環境。
所以,使用 MinGW 我們就可以像在 Linux 下一樣使用 GNU 程序開發工具。
GCC 就是 MinGW 的核心所在,GCC 是一套支持眾多計算機程序語言的編譯系統,而且在語言標準的實現上是最接近於標準的。並且 GCC
幾乎可以移植到目前所有可用的計算機平台。(我的電腦上就還裝有 DevKitPro,裡麵包含 GCC 的 ARM(for GBA/DS/GP32)
和 MIPS(for PSP) 版本。)
GCC 本身不像 VC 那樣擁有IDE 界面(在 Windows 上也存在 Dev C++ 之類的支持 MinGW 編譯器的
IDE)。源代碼編輯你可以選用任何你喜歡的文本編輯器(據說微軟的開發人員包括 VC 的開發都不用 VC 所帶的 IDE 編輯器,而是選用 GNU
的 VIM 編輯器)。然後使用 make 等工具來進行軟體項目的編譯、鏈接、打包乃至發布。而像 cvs(svn)
源代碼版本控制工具可以讓世界上任何一個角落的人都可以參與到軟體項目中來。

2.下載MinGW
一種方法是到Sourceforge(http://sourceforge.net/project/showfiles.php?group_id=2435)下載一個MinGW-2.0.0-3.exe。

但是我配置的時候我電腦上安裝了codeblocks,已經自帶了MinGW。

3.環境變數的配置
在(系統屬性-->高級-->環境變數-->系統變數 中)(以下目錄都根據自己的電腦MinGW所在位置不同而改變)

a.在PATH的值中加入「C:\Program Files\MinGWStudio\MinGW\bin」。這是尋找gcc編譯器的路徑。如果PATH中還有其他內容,需要用英文狀態下分號進行分割

b.新建LIBRARY_PATH變數,在其值中加入「C:\Program Files\MinGWStudio\MinGW\lib」。這是標准庫存放的路徑。

c.新建C_INCLUDE_PATH變數,在其值中加入「C:\Program Files\MinGWStudio\MinGW\include」。這是Include查找頭文件的路徑。

4.驗證gcc是否正常運行
在cmd控制台窗口下面,輸入gcc -v。若已經成功安裝好,會顯示gcc的版本信息。

E. 嵌入式linux應用程序通常用什麼編譯器編譯

Linux有一系列功能強大的編譯器:vi、emace是屏幕互動式編譯器,GNU CC是GNU項目中符合ANSI C標準的編譯系統。

vi命令是Linux下全屏幕文本編輯,雖然這個編譯器特簡陋,對於初學者來說不是很友好,但是在Linux中vi的作用非常大。

主要的三種模式:命令模式、輸入模式、末行模式。

掌握這三種模式十分重要:

命令模式:vi啟動後默認進入的是命令模式,從這個模式使用命令可以切換到另外兩種模式,同時無論在任何模式下只要按一下[Esc]鍵都可以返回命令模式。在命令模式中輸入字幕「i」就可以進入vi的輸入模式編輯文件。

輸入模式:在這個模式中我們可以編輯、修改、輸入等編輯工作,在編輯器最後一行顯示一個「--INSERT--」標志著vi進入了輸入模式。當我們完成修改輸入等操作的時候我們需要保存文件,這時我們需要先返回命令模式,在進入末行模式保存。

末行模式:在命令模式輸入「:」即可進入該模式,在末行模式中有好多好用的命令。

vim是vi編輯器的改進版本,在vi編譯的基礎上擴展了很多實用的功能。

至於vi/vim的命令就不給大家介紹了,我們在日常實際的使用之中隨著積累都會掌握。

F. c語言編譯系統有哪些及其特點

C 語言特點
C語言是一種成功的系統描述語言,用C語言開發的UNIX操作系統就是一個成功的範例;同時C語言又是一種通用的程序設計語言,在國際上廣泛流行。世界上很多著名的計算公司都成功的開發了不同版本的C語言,很多優秀的應用程序也都使用C語言開發的,它是一種很有發展前途的高級程序設計語言。 1. C是中級語言。它把高級語言的基本結構和語句與低級語言的實用性結合起來。C 語言可以像匯編語言一樣對位、位元組和地址進行操作, 而這三者是計算機最基本的工作單元。 2.C是結構式語言。結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。 3.C語言功能齊全。具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。 c語言
4. C語言適用范圍大。適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。 C語言對編寫需要硬體進行操作的場合,明顯優於其它解釋型高級語言,有一些大型應用軟體也是用C語言編寫的。 C語言具有較好的可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。 常用的C語言IDE(集成開發環境)有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc 等等…… c語言的學習 對於一個初學者,Microsoft Visual C++是一個比較好的軟體。界面友好,功能強大,調試也很方便。這是微軟出的一個C語言集成開發環境(IDE),主要有:VC++6.0、VS2005、VS2008、VS2010等,分為企業版和學生版等。對於初學者VC++6.0是比較容易上手的,但由於其對標准支持的不好可能使人養成不良編程習慣,因此論壇上也有人主張舍棄VC++6.0。 在unix/linux操作系統上,學習c語言一般使用vim/emacx來編輯源文件,使用gcc/cc來編譯源文件,使用make程序來管理編譯過程。
編輯本段發展歷史
c語言
C語言的祖先是BCPL語言。 1967年,劍橋大學的Martin Richards 對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Pogramming Language)語言。 1970年,美國貝爾實驗室的Ken Thompson。以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母)。並且他用B語言寫了第一個UNIX操作系統。 在1972年,美國貝爾實驗室的D.M.Ritchie在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。 為了使UNIX操作系統推廣,1977年Dennis M.Ritchie 發表了不依賴於具體機器系統的C語言編譯文本《可移植的C語言編譯程序》。 1978年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。同時由B.W.Kernighan和D.M.Ritchie合著 c語言程序設計
了著名的《The C Programming Language》一書。通常簡稱為《K&R》,也有人稱之為《K&R》標准。但是,在《K&R》中並沒有定義一個完整的標准C語言,後來由美國國家標准化協會(American National Standards Institute)在此基礎上制定了一個C語言標准,於一九八三年發表。通常稱之為ANSI C。 K&R第一版在很多語言細節上也不夠精確,對於pcc這個「參照編譯器」來說,它日益顯得不切實際;K&R甚至沒有很好表達它所要描述的語言,把後續擴展扔到了一邊。最後,C在早期項目中的使用受商業和政府合同支配,它意味著一個認可的正式標準是重要的。因此(在M. D. McIlroy的催促下),ANSI於1983年夏天,在CBEMA的領導下建立了X3J11委員會,目的是產生一個C標准。X3J11在1989年末提出了一個他們的報告[ANSI 89],後來這個標准被ISO接受為ISO/IEC 9899-1990。 1990年,國際標准化組織ISO(International Organization for Standards)接受了89 ANSI C 為I SO C 的標准(ISO9899-1990)。1994年,ISO修訂了C語言的標准。 1995年,ISO對C90做了一些修訂,即「1995基準增補1(ISO/IEC/9899/AMD1:1995)」。1999年,ISO有對C語言標准進行修訂,在基本保留原來C語言特徵的基礎上,針對應該的需要,增加了一些功能,尤其是對C++中的一些功能,命名為ISO/IEC9899:1999。 2001年和2004年先後進行了兩次技術修正。 目前流行的C語言編譯系統大多是以ANSI C為基礎進行開發的,但不同版本的C編譯系統所實現的語言功能和語法規則有略有差別。

G. android系統編譯能用分布式編譯嗎

項目越來越大,每次需要重新編譯整個項目都是一件很浪費時間的事情。Research了一下,找到以下可以幫助提高速度的方法,總結一下。
1. 使用tmpfs來代替部分IO讀寫
2.ccache,可以將ccache的緩存文件設置在tmpfs上,但是這樣的話,每次開機後,ccache的緩存文件會丟失
3.distcc,多機器編譯
4.將屏幕輸出列印到內存文件或者/dev/null中,避免終端設備(慢速設備)拖慢速度。

tmpfs
有人說在Windows下用了RAMDisk把一個項目編譯時間從4.5小時減少到了5分鍾,也許這個數字是有點誇張了,不過粗想想,把文件放到內存上做編譯應該是比在磁碟上快多了吧,尤其如果編譯器需要生成很多臨時文件的話。
這個做法的實現成本最低,在Linux中,直接mount一個tmpfs就可以了。而且對所編譯的工程沒有任何要求,也不用改動編譯環境。
mount -t tmpfs tmpfs ~/build -o size=1G
用2.6.32.2的Linux Kernel來測試一下編譯速度:
用物理磁碟:40分16秒
用tmpfs:39分56秒
呃……沒什麼變化。看來編譯慢很大程度上瓶頸並不在IO上面。但對於一個實際項目來說,編譯過程中可能還會有打包等IO密集的操作,所以只要可能,用tmpfs是有益無害的。當然對於大項目來說,你需要有足夠的內存才能負擔得起這個tmpfs的開銷。
make -j
既然IO不是瓶頸,那CPU就應該是一個影響編譯速度的重要因素了。
用make -j帶一個參數,可以把項目在進行並行編譯,比如在一台雙核的機器上,完全可以用make -j4,讓make最多允許4個編譯命令同時執行,這樣可以更有效的利用CPU資源。
還是用Kernel來測試:
用make: 40分16秒
用make -j4:23分16秒
用make -j8:22分59秒
由此看來,在多核CPU上,適當的進行並行編譯還是可以明顯提高編譯速度的。但並行的任務不宜太多,一般是以CPU的核心數目的兩倍為宜。
不過這個方案不是完全沒有cost的,如果項目的Makefile不規范,沒有正確的設置好依賴關系,並行編譯的結果就是編譯不能正常進行。如果依賴關系設置過於保守,則可能本身編譯的可並行度就下降了,也不能取得最佳的效果。
ccache
ccache工作原理:
ccache也是一個編譯器驅動器。第一趟編譯時ccache緩存了GCC的「-E」輸出、編譯選項以及.o文件到$HOME/.ccache。第二次編譯時盡量利用緩存,必要時更新緩存。所以即使"make clean; make"也能從中獲得好處。ccache是經過仔細編寫的,確保了與直接使用GCC獲得完全相同的輸出。

ccache用於把編譯的中間結果進行緩存,以便在再次編譯的時候可以節省時間。這對於玩Kernel來說實在是再好不過了,因為經常需要修改一些Kernel的代碼,然後再重新編譯,而這兩次編譯大部分東西可能都沒有發生變化。對於平時開發項目來說,也是一樣。為什麼不是直接用make所支持的增量編譯呢?還是因為現實中,因為Makefile的不規范,很可能這種「聰明」的方案根本不能正常工作,只有每次make clean再make才行。
安裝完ccache後,可以在/usr/local/bin下建立gcc,g++,c++,cc的symbolic link,鏈到/usr/bin/ccache上。總之確認系統在調用gcc等命令時會調用到ccache就可以了(通常情況下/usr/local /bin會在PATH中排在/usr/bin前面)。
安裝的另外一種方法:
vi ~/.bash_profile
把/usr/lib/ccache/bin路徑加到PATH下
PATH=/usr/lib/ccache/bin:$PATH:$HOME/bin
這樣每次啟動g++的時候都會啟動/usr/lib/ccache/bin/g++,而不會啟動/usr/bin/g++
效果跟使用命令行ccache g++效果一樣
這樣每次用戶登錄時,使用g++編譯器時會自動啟動ccache
繼續測試:
用ccache的第一次編譯(make -j4):23分38秒
用ccache的第二次編譯(make -j4):8分48秒
用ccache的第三次編譯(修改若干配置,make -j4):23分48秒

看來修改配置(我改了CPU類型...)對ccache的影響是很大的,因為基本頭文件發生變化後,就導致所有緩存數據都無效了,必須重頭來做。但如果只是修改一些.c文件的代碼,ccache的效果還是相當明顯的。而且使用ccache對項目沒有特別的依賴,布署成本很低,這在日常工作中很實用。
可以用ccache -s來查看cache的使用和命中情況:
cache directory /home/lifanxi/.ccachecache hit 7165cache miss 14283called for link 71not a C/C++ file 120no input file 3045files in cache 28566cache size 81.7 Mbytesmax cache size 976.6 Mbytes
可以看到,顯然只有第二編次譯時cache命中了,cache miss是第一次和第三次編譯帶來的。兩次cache佔用了81.7M的磁碟,還是完全可以接受的。
distcc
一台機器的能力有限,可以聯合多台電腦一起來編譯。這在公司的日常開發中也是可行的,因為可能每個開發人員都有自己的開發編譯環境,它們的編譯器版本一般是一致的,公司的網路也通常具有較好的性能。這時就是distcc大顯身手的時候了。
使用distcc,並不像想像中那樣要求每台電腦都具有完全一致的環境,它只要求源代碼可以用make -j並行編譯,並且參與分布式編譯的電腦系統中具有相同的編譯器。因為它的原理只是把預處理好的源文件分發到多台計算機上,預處理、編譯後的目標文件的鏈接和其它除編譯以外的工作仍然是在發起編譯的主控電腦上完成,所以只要求發起編譯的那台機器具備一套完整的編譯環境就可以了。
distcc安裝後,可以啟動一下它的服務:
/usr/bin/distccd --daemon --allow 10.64.0.0/16
默認的3632埠允許來自同一個網路的distcc連接。
然後設置一下DISTCC_HOSTS環境變數,設置可以參與編譯的機器列表。通常localhost也參與編譯,但如果可以參與編譯的機器很多,則可以把localhost從這個列表中去掉,這樣本機就完全只是進行預處理、分發和鏈接了,編譯都在別的機器上完成。因為機器很多時,localhost的處理負擔很重,所以它就不再「兼職」編譯了。
export DISTCC_HOSTS="localhost 10.64.25.1 10.64.25.2 10.64.25.3"
然後與ccache類似把g++,gcc等常用的命令鏈接到/usr/bin/distcc上就可以了。
在make的時候,也必須用-j參數,一般是參數可以用所有參用編譯的計算機CPU內核總數的兩倍做為並行的任務數。
同樣測試一下:
一台雙核計算機,make -j4:23分16秒
兩台雙核計算機,make -j4:16分40秒
兩台雙核計算機,make -j8:15分49秒
跟最開始用一台雙核時的23分鍾相比,還是快了不少的。如果有更多的計算機加入,也可以得到更好的效果。
在編譯過程中可以用distccmon-text來查看編譯任務的分配情況。distcc也可以與ccache同時使用,通過設置一個環境變數就可以做到,非常方便。
總結一下:
tmpfs: 解決IO瓶頸,充分利用本機內存資源
make -j: 充分利用本機計算資源
distcc: 利用多台計算機資源
ccache: 減少重復編譯相同代碼的時間
這些工具的好處都在於布署的成本相對較低,綜合利用這些工具,就可以輕輕鬆鬆的節省相當可觀的時間。上面介紹的都是這些工具最基本的用法,更多的用法可以參考它們各自的man page。
5.還有提速方法是把屏幕輸出重定向到內存文件或/dev/null,因對終端設備(慢速設備)的阻塞寫操作也會拖慢速度。推薦內存文件,這樣發生錯誤時,能夠查看。

H. 總結Linux下的4種常用的編譯開發工具——編輯器、編譯器、調試器及項目管理器的功能。

編輯器:vi,getedit等,寫代碼用的。
編譯器:gcc/g++,把代碼編譯成二進製程序
調試器:gdb,kgdb等,調試程序用的
項目管理器:一般用eclipse等IDE來管理工程

I. vs2010 C#項目無法訪問靜態變數!是編譯系統的原因嗎

呵呵,剛剛試了幾次,總算復現了你的問題了。
你的錯誤應該是這樣的:
1.public static string M_str_right 聲明但是沒有賦值,你在另一個窗體類調用它之前也未曾賦值過。
2.frmLogin.M_str_right.ToString(),這裡面的ToString()必須是對非空的內容轉換字元串,可是你的frmLogin.M_str_right為空,所以轉換字元串的時候出錯
3.其實tsslUser.Text = "操作用戶許可權:" + frmLogin.M_str_right;這樣寫就可以了,應為frmLogin.M_str_right本身就是字元串類型,不需要轉換的。

J. 編譯系統有哪些

JAVA編譯環境有:
1.
UltraEdit 是最簡單的一種,也是功能比較強的一種,具體怎麼使用這里我就不詳細說明了。
2.
NetBeans 5.0 界面是中文的,可以建項目,用起來也比較簡單。
3.
Eclipse 這個也是中文的,但有時需要漢化。這個編譯環境現在大多數JAVA
程序員都比較喜歡用,界面簡單,但功能強大,我現在也正在用這個編譯環境。

呵呵,以上就是JAVA的最常用的編譯環境,祝你好運!

閱讀全文

與項目編譯系統相關的資料

熱點內容
程序員看不懂怎麼辦 瀏覽:271
linux操作系統題 瀏覽:765
單片機無符號數加法 瀏覽:227
應用隱藏加密怎麼關閉 瀏覽:269
汽車空調的壓縮機電線有什麼用 瀏覽:429
電腦加密圖片如何取消加密 瀏覽:340
慧凈電子51單片機視頻 瀏覽:343
javamap賦值 瀏覽:165
什麼app可以玩掌機游戲 瀏覽:46
java簡單聊天室 瀏覽:462
通用汽車編程軟體 瀏覽:432
一級抗震框架梁箍筋加密區規定是多少 瀏覽:974
教你如何把安卓手機變成蘋果 瀏覽:11
app編譯分類 瀏覽:323
怎麼用伺服器的資源包 瀏覽:199
oa軟體手機登陸伺服器地址 瀏覽:289
androidrtp打包 瀏覽:723
信息被加密碼了怎麼辦 瀏覽:420
彈出光碟命令 瀏覽:517
kdj公式源碼分享 瀏覽:355