導航:首頁 > 源碼編譯 > 編譯手冊怎麼寫

編譯手冊怎麼寫

發布時間:2025-01-08 21:59:12

『壹』 軟體開發文檔的分類

1. 《功能要求》 -- 來源於客戶要求和市場調查,是軟體開發中最早期的一個環節。客戶提出一個模糊的功能概念,或者要求解決一個實際問題,或者參照同類軟體的一個功能。有軟體經驗的客戶還會提供比較詳細的技術規范書,把他們的要求全部列表書寫在文檔中,必要時加以圖表解說。這份文檔是需求分析的基礎。
2. 《投標方案》 -- 根據用戶的功能要求,經過與招標方溝通和確認,技術人員開始書寫《投標方案》,方案書一般包括以下幾個重要的章節: 前言 -- 項目背景、公司背景和業務、技術人員結構、公司的成功案例介紹等。 需求分析 -- 項目要求、軟體結構、功能列表、功能描述、注意事項等。 技術方案 -- 總體要求和指導思想、技術解決方案、軟體開發平台、網路結構體系等。 項目管理 -- 描述公司的軟體開發流程、工程實施服務、組織和人員分工、開發進度控制、軟體質量保證、項目驗收和人員培訓、軟體資料文檔等。 技術支持 -- 公司的技術支持和服務介紹、服務宗旨和目標、服務級別和響應時間、技術服務區域、技術服務期限、授權用戶聯系人等。 系統報價 -- 軟、硬體平台報價列表、軟體開發費用、系統維護費用等。 項目進度 -- 整個項目的進度計劃,包括簽署合同、項目啟動、需求分析、系統分析、程序開發、測試維護、系統集成、用戶驗收、用戶培訓等步驟的時間規劃。
3. 《需求分析》 -- 包括產品概述、主要概念、操作流程、功能列表和解說、注意事項、系統環境等。以《功能要求》為基礎,進行詳細的功能分析 ( 包括客戶提出的要求和根據開發經驗建議的功能 ) ,列出本產品是什麼,有什麼特殊的概念,包括哪些功能分類,需要具備什麼功能,該功能的操作如何,實現的時候該注意什麼細節,客戶有什麼要求,系統運行環境的要求等。這里的功能描述跟以後的使用手冊是一致的。
4. 《技術分析》 -- 包括技術選型、技術比較、開發人員、關鍵技術問題的解決、技術風險、技術升級方向、技術方案評價,競爭對手技術分析等。以《需求分析》為基礎,進行詳細的技術分析 ( 產品的性能和實現方法 ) ,列出本項目需要使用什麼技術方案,為什麼,有哪些技術問題要解決 ,估計開發期間會碰到什麼困難,技術方案以後如何升級,對本項目的技術有什麼評價等。
5. 《系統分析》 -- 包括功能實現、模塊組成、功能流程圖、函數介面、數據字典、軟體開發需要考慮的各種問題等。以《需求分析》為基礎,進行詳細的系統分析 ( 產品的開發和實現方法 ) ,估計開發期間需要把什麼問題說明白,程序員根據《系統分析》,開始在項目主管的帶領下進行編碼。
6. 《資料庫文檔》 -- 包括資料庫名稱、表名、欄位名、欄位類型、欄位說明、備注、欄位數值計算公式等。以《系統分析》為基礎,進行詳細的資料庫設計。必要時可以用圖表解說,特別是關系資料庫。
7. 《功能函數文檔》 -- 包括變數名、變數初值、功能,函數名,參數,如何調用、備注、注意事項等。以《系統分析》為基礎,進行詳細的說明,列出哪個功能涉及多少個函數,以便以後程序員修改、接手和擴展。
8. 《界面文檔》 -- 包括軟體外觀、界面素材、編輯工具、文件名、菜單、按鈕和其它界面部件的要求,這里與軟體完成後的運行界面是一致的。
9. 《編譯手冊》 -- 包括伺服器編譯環境、操作系統、編譯工具、 GNU 的 C++ 編譯器版本信息、目錄說明、程序生成、源程序文件列表、 Makefile 配置及其相關程序的對應關系列表。客戶端的編譯過程、編譯結果、編譯示例、編譯環境、操作系統、編譯工具、源文件列表和製作安裝程序的過程。
10. 《 QA 文檔》 -- 包括產品簡介、產品原理、產品功能列表、功能描述、功能流程、執行結果、資料庫結構、測試要求等,提供給軟體測試人員使用。
11. 《項目總結》 -- 包括項目簡介、項目參與人員和開發時間、項目風險管理過程、項目功能列表、項目結構特點、技術特點、對項目的升級建議、對以後的項目的建議、人員素質情況等。 1. 《產品簡介》 -- 包括公司背景、產品概念、適用范圍、產品功能、功能特點、運行要求和公司聯系地址。
2. 《產品演示》 -- 包括公司簡介、產品背景、產品描述、產品特點、產品作用、適用范圍、使用分析、功能模塊、解決問題、合作夥伴、成功案例等。一般用 Power point 或者 VCD 錄制軟體實現。
3. 《疑問解答》 -- 列出用戶關心的問題和處理方法。用於解答軟體的操作功能和解決用戶的疑難問題。
4. 《功能介紹》 -- 以《需求分析》為書寫基礎,包括軟體介紹、軟體結構、功能列表、功能描述和公司聯系地址。
5. 《技術白皮書》 -- 以《技術分析》為書寫基礎,包括功能實現、技術選型、關鍵技術問題的解決、技術方案特點、技術升級方向等。
6. 《評測報告》 -- 第三方權威評測報告。包括評測目的、評測范圍、評測環境、評測內容、實測數據、性能表現、結果分析和評測總結等。
7. 《安裝手冊》 -- 包括系統環境、運行平台、產品安裝過程、初始環境設置、安裝記錄等。
8. 《使用手冊》 -- 包括產品簡介、功能列表、功能描述和解釋、功能操作、客戶服務和聯系方式等。
9. 《維護手冊》 -- 包括產品簡介、系統須知、初始環境設置、系統配置、數據管理和備份、技術問題解答和聯系方式等。
10. 《用戶報告》 -- 包括產品簡介、購買時間、使用目的、使用時間、使用地點、實施過程、出現問題和解決、產品總結和建議等。
11. 《銷售培訓》 -- 包括項目簡介、產品功能、產品特點、商業優勢、系統運行環境、適用范圍、目標客戶等。 第一、需求分析文檔
用戶需求分析文檔是指在和客戶進行溝通時,把用戶所要求的信息記錄下來,根據用戶的要求進行需求分析,規劃出我們要開發的軟體所要實現哪些功能。
第二、概要設計文檔
概要設計:顧名思義,就是對我們所要開發的軟體進行一個整體的概括,把這個軟體所包含的功能模塊作一個設計,以後我們在開發的時候就有目標,有方向了。
第三、系統設計文檔
系統設計,就是對概要的一個詳細的實施,就是分析我們所要開發軟體各大功能模塊中所包含的小模塊,把這些小模塊都一一列舉出來,然後再對軟體開發人員進行有條理的進行開發任務的分配。
第四、詳細設計文檔
詳細設計文檔,主要是把我們每個小模塊,小功能的業務邏輯處理用文字的方式表達出來,讓程序員在編碼的時候有一個依據和參照;同時,在進行詳細文檔設計的時候,有的軟體公司也會根據不同的項目作出相應的《軟體開發代碼規范》性文檔。以保障我們所做工作的統一性。
第五、軟體測試文檔
當我們參照軟體詳細設計文檔編碼完成後,接著就會根據我們所實現的功能,進行軟體測試文檔的編寫;大多測試文檔有兩類,一類是軟體單體測試文檔,一類是軟體結合測試文檔;顧名思義,單體測試:就是對軟體中每個小的方法,一個獨立的方法進行測試的文檔;結合測試:就是把多個功能模塊組合到一起進行測試,主要是為了檢測每個功能模塊之前的交互性和功能的結合實現性。
第六、軟體完成後的總結匯報型文檔
不管所開發軟體的規模大小,在一個軟體開發結束後,我們都會把開發過中的問題和項目開發總結一起記錄下來,以防以後在開發過程中再有類似問題出現,提高我們的開發效率。
根據軟體開發公司的規模、標准和客戶的需求不同,開發文檔的種類和數量也不同,我在這里和大家討論的軟體開發相關文檔都是最基礎的;在軟體行業有一句話:一個軟體能否順利的完成並且功能是否完善,重要是看這個軟體有多少文檔,軟體開發文檔是一個軟體的支柱,如果你的開發文檔漏洞百出,那麼你所開發出來的軟體也不可能會好;開發文檔的好壞可以直接影響到所開發出來軟體的成功與否。

『貳』 如何將自己編寫好的代碼弄成應用軟體啊

你需要的是編譯器,比如TurboC,MSC,或者VC等等,你寫的C代碼只是源程序而已,需要經過C編譯器編譯成可執行的EXE文件。C編譯器有很多,上面提到的就是比較常用的,至於編譯器的使用,你得另查一查使用手冊,一般而言,編譯器都帶有IDE的集成編程環境,可以作為程序的編輯器(別把編輯器和編譯器弄混了,編輯器就是可以輸入源代碼的軟體工具,如記事本就是一個最簡單的編輯器,編譯器就是用於編譯特定語言源代碼的軟體),然後一般都有一個編譯(Compile)按鈕(或者編譯命令),編譯時編譯器會檢查你的源代碼是否有語法錯誤,如果沒有錯誤,還會使用鏈接(Link)工具將你的程序鏈接成為可執行的Exe文件,至此,你的源程序就成了可運行的程序了。

運行EXE文件是不用源代碼的,它與編寫程序的語言無關,各種編程語言寫成的源程序經過該編程語言的編譯器可以被編譯成在計算機上可以被運行的執行程序。

『叄』 如何 編譯 c code mikefile

Makefile 介紹

make命令執行時,需要一個 Makefile 文件,以告訴make命令需要怎麼樣的去編譯和鏈接程序。

首先,我們用一個示例來說明Makefile的書寫規則。以便給大家一個感興認識。這個示例來源於GNU的make使用手冊,在這個示例中,我們的工程有8個C文件,和3個頭文件,我們要寫一個Makefile來告訴make命令如何編譯和鏈接這幾個文件。我們的規則是:

1. 如果這個工程沒有編譯過,那麼我們的所有C文件都要編譯並被鏈接。

2. 如果這個工程的某幾個C文件被修改,那麼我們只編譯被修改的C文件,並鏈接目標程序。

3. 如果這個工程的頭文件被改變了,那麼我們需要編譯引用了這幾個頭文件的C文件,並鏈接目標程序。

只要我們的Makefile寫得夠好,所有的這一切,我們只用一個make命令就可以完成,make命令會自動智能地根據當前的文件修改的情況來確定哪些文件需要重編譯,從而自己編譯所需要的文件和鏈接目標程序。

1.1 Makefile的規則

在講述這個Makefile之前,還是讓我們先來粗略地看一看Makefile的規則。 target ... : prerequisites ...

command

...

...

target也就是一個目標文件,可以是Object
File,也可以是執行文件。還可以是一個標簽(Label),對於標簽這種特性,在後續的「偽目標」章節中會有敘述。

prerequisites就是,要生成那個target所需要的文件或是目標。

command也就是make需要執行的命令。(任意的Shell命令)

這是一個文件的依賴關系,也就是說,target這一個或多個的目標文件依賴於

prerequisites中的文件,其生成規則定義在command中。說白一點就是說,prerequisites中如果有一個以上的文件比target文件要新的話,command所定義的命令就會被執行。這就是Makefile的規則。也就是Makefile中最核心的內容。

說到底,Makefile的東西就是這樣一點,好像我的這篇文檔也該結束了。呵呵。還不盡然,這是Makefile的主線和核心,但要寫好一個Makefile還不夠,我會以後面一點一點地結合我的工作經驗給你慢慢到來。內容還多著呢。:)

1.2 一個示例

正如前面所說的,如果一個工程有3個頭文件,和8個C文件,我們為了完成前面所述的那三個規則,我們的Makefile應該是下面的這個樣子的。

edit : main.o kbd.o command.o display.o \

insert.o search.o files.o utils.o

cc -o edit main.o kbd.o command.o display.o \

insert.o search.o files.o utils.o

main.o : main.c defs.h

cc -c main.c

kbd.o : kbd.c defs.h command.h

cc -c kbd.c

command.o : command.c defs.h command.h

cc -c command.c

display.o : display.c defs.h buffer.h

cc -c display.c

insert.o : insert.c defs.h buffer.h

cc -c insert.c

search.o : search.c defs.h buffer.h

cc -c search.c

files.o : files.c defs.h buffer.h command.h

cc -c files.c

utils.o : utils.c defs.h

cc -c utils.c

clean :

rm edit main.o kbd.o command.o display.o \

insert.o search.o files.o utils.o

反斜杠(\)是換行符的意思。這樣比較便於Makefile的易讀。我們可以把這個內容保存在文件為「Makefile」或「makefile」的文件中,然後在該目錄下直接輸入命令「make」就可以生成執行文件edit。如果要刪除執行文件和所有的中間目標文件,那麼,只要簡單地執行一下「make
clean」就可以了。

在這個makefile中,目標文件(target)包含:執行文件edit和中間目標文件(*.o),依賴文件(prerequisites)就是冒號後面的那些
.c 文件和 .h文件。每一個 .o 文件都有一組依賴文件,而這些 .o 文件又是執行文件 edit
的依賴文件。依賴關系的實質上就是說明了目標文件是由哪些文件生成的,換言之,目標文件是哪些文件更新的。

在定義好依賴關系後,後續的那一行定義了如何生成目標文件的操作系統命令,一定要以一個Tab鍵作為開頭。記住,make並不管命令是怎麼工作的,他只管執行所定義的命令。make會比較targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的話,那麼,make就會執行後續定義的命令。

這里要說明一點的是,clean不是一個文件,它只不過是一個動作名字,有點像C語言中的lable一樣,其冒號後什麼也沒有,那麼,make就不會自動去找文件的依賴性,也就不會自動執行其後所定義的命令。要執行其後的命令,就要在make命令後明顯得指出這個lable的名字。這樣的方法非常有用,我們可以在一個makefile中定義不用的編譯或是和編譯無關的命令,比如程序的打包,程序的備份,等等。

1.3 make是如何工作的

在默認的方式下,也就是我們只輸入make命令。那麼,

1. make會在當前目錄下找名字叫「Makefile」或「makefile」的文件。

2. 如果找到,它會找文件中的第一個目標文件(target),在上面的例子中,他會找到「edit」這個文件,並把這個文件作為最終的目標文件。

3. 如果edit文件不存在,或是edit所依賴的後面的 .o
文件的文件修改時間要比edit這個文件新,那麼,他就會執行後面所定義的命令來生成edit這個文件。

4.
如果edit所依賴的.o文件也存在,那麼make會在當前文件中找目標為.o文件的依賴性,如果找到則再根據那一個規則生成.o文件。(這有點像一個堆棧的過程)

5. 當然,你的C文件和H文件是存在的啦,於是make會生成 .o 文件,然後再用 .o 文件聲明make的終極任務,也就是執行文件edit了。

這就是整個make的依賴性,make會一層又一層地去找文件的依賴關系,直到最終編譯出第一個目標文件。在找尋的過程中,如果出現錯誤,比如最後被依賴的文件找不到,那麼make就會直接退出,並報錯,而對於所定義的命令的錯誤,或是編譯不成功,make根本不理。

『肆』 合泰單片機內置eeprom只能讀不能寫,要怎麼解決

我也遇到這樣的問題。沒人給出答案,我來說一下吧。(主要是針對V3編譯C)

根據Holtek_C_Compiler_V3_FAQ(950).pdf的描述,V3不保證編譯後的指令符合EEPROM寫入順序。根據BS86的數據手冊,WREN 和 WR一定要符合順序。

我編譯後的指令出現的是LSET WREN以及LSET WR,這個就出問題了。晶元需要的是SET。

解決方法是根據官方FAQ的描述
"5.5 對於寫 EEPROM 有限制的 MCU ( 需連續 set wren, wr, flag),如何使用
V3 寫 EEPROM?"
下面是代碼

//RefertoHoltek_C_Compiler_V3_FAQ(950).pdf
typedefstruct{
unsignedcharbit0:1;
unsignedcharbit1:1;
unsignedcharbit2:1;
unsignedcharbit3:1;
unsignedcharbit4:1;
unsignedcharbit5:1;
unsignedcharbit6:1;
}iar_bits;

DEFINE_SFR(iar_bits,iar1,0x02);
#defineiar1_3 iar1.bit3
#defineiar1_2 iar1.bit2
#defineiar1_1 iar1.bit1
#defineiar1_0 iar1.bit0
...
uint8_tbkup;
_eea=u8Addr;
_eed=u8NewData;

_mp1l=0x40;
bkup=_mp1h;
_mp1h=0x01;
_emi=0;
iar1_3=1;
iar1_2=1;
_emi=1;

while(iar1_2)
{
}
_iar1=0;
_mp1h=bkup;
...

官方的解決方案產生的代碼跟數據手冊中的一直:

				;129		iar1_3=1;
0D0D 3182 set__iar1[0].3《《以前這里是LSETWREN


;130 iar1_2=1;
0D0E 3102 set__iar1[0].2《《以前這里是LSETWR

『伍』 .h文件中只是函數的聲明,而函數的定義在哪呢

標准庫的代碼都是被編譯好的庫,通過頭文件給出定義,讓你可以使用,你編譯程序的時候,連接器會把庫中的代碼連接進來。

想知道函數怎麼用就要查手冊。

後面兩句,確切的說是三句是用來避免重復包含的,一般這樣寫

#ifndef abcde
#define abcde

......//一些定義

#endif

如果你這個文件沒被包含過,那麼abcde就沒有定義,所以編譯器會定義個abcde然後看你下面的內容。如果你已經包含過這個文件了,那abcde就有定義了,多次包含的時候,編譯器就不會理睬下面的內容了。

閱讀全文

與編譯手冊怎麼寫相關的資料

熱點內容
手機桌面文件夾變小了怎麼辦 瀏覽:571
日程管理app哪個好 瀏覽:701
黑馬程序員雲開發實戰 瀏覽:597
加密空間上傳作品 瀏覽:398
備忘錄清空的如何恢復安卓 瀏覽:170
劍三霸刀宏命令 瀏覽:36
手機zip文件的解壓方式 瀏覽:189
順豐金融app在哪裡可以下載 瀏覽:930
微信無法應用加密怎麼辦 瀏覽:464
sw裝配體能不能加密 瀏覽:751
python列表中提取偶數 瀏覽:835
騰訊雲伺服器購買教程技巧 瀏覽:808
鹽官觀潮時間演算法 瀏覽:931
虛擬機linux上不了網 瀏覽:444
pythonu字元串轉 瀏覽:205
沒有pc版本的安卓系統怎麼辦 瀏覽:901
域伺服器如何備份 瀏覽:857
程序員數據狗 瀏覽:554
電子表的加密方法 瀏覽:100
會玩app裡面怎麼找五子棋 瀏覽:398