官網(wǎng)下載二進(jìn)制或者直接用yum或apt工具下載。
項目注釋塊用于對項目進(jìn)行描述,每個項目只出現(xiàn)一次,一般可以放在main.c主函數(shù)文件頭部。對于其它類型的項目,置于定義項目入口函數(shù)的文件中。對于無入口函數(shù)的項目,比如靜態(tài)庫項目,置于較關(guān)鍵且不會被外部項目引用的文件中。 項目注釋塊以“/** @mainpage”開頭,以“*/”結(jié)束。包含項目描述、及功能描述、用法描述、注意事項4個描述章節(jié)。 項目描述章節(jié)描述項目名稱、作者、代碼庫目錄、項目詳細(xì)描述4項內(nèi)容,建議采用HTML的表格語法進(jìn)行對齊描述。 功能描述章節(jié)列舉該項目的主要功能。 用法描述章節(jié)列舉該項目的主要使用方法,主要針對動態(tài)庫、靜態(tài)庫等會被其它項目使用的項目。對于其它類型的項目,該章節(jié)可省略。 注意事項章節(jié)描述該項目的注意事項、依賴項目等相關(guān)信息
/**@mainpage
* @section 項目詳細(xì)描述
*
* @section 功能描述
*
* @section 用法描述
*
**********************************************************************************
*/
項目注釋也可以使用markdown文件作為主頁,通過指定md文件路徑來配置。
USE_MDFILE_AS_MAINPAGE = doc/readme.md
若markdown文件里包含圖片,可能會出現(xiàn)圖片無法顯示的情況,這個時候需先檢查圖片路徑是否正確,同時還需要在doxyfile中添加圖片路徑方可顯示。
IMAGE_PATH = ./doc/images
/**
* @file 文件名
* @brief 簡介
* @details 細(xì)節(jié)
* @mainpage 工程概覽
* @author 作者
* @version 版本號
* @date 年-月-日
*/
/// 緩存大小
#define BUFSIZ 1024*4
#define BUFSIZ 1024*4 ///< 緩存大小
/**
* @brief 函數(shù)簡介
*
* @param 形參 參數(shù)說明
* @param 形參 參數(shù)說明
* @return 返回值說明
*/
nginx的作用不在此贅述,下面主要記錄部分簡單地使用場景。以下基于“ubuntu 18.04 server”版本驗證。
適用場景:
非適用場景:
安裝軟件:需要使用apache2-utils中的htpasswd
sudo apt-get install nginx
sudo apt install apache2-utils
查看服務(wù)狀態(tài): +號說明服務(wù)處于up狀態(tài)
service --status-all
......
[ + ] nginx
......
修改配置:具體如何修改見后面章節(jié)
sudo vi /etc/nginx/sites-enabled/default
重啟nginx服務(wù):修改配置后,需要重啟nginx
service nginx restart
使用要求:
設(shè)計要求:
外部URL | NAT處理 | 內(nèi)部URL |
http://$wanip:9999/source/ | http://$nginxip:8081/source/ | 鑒權(quán)成功 --> 打開http://$hostip:666/xxx |
http://$wanip:9999/git/xxx | http://$nginxip:8081/git/xxx | 鑒權(quán)成功 --> 打開http://$hostip:777/git/xxx |
nginx配置: /etc/nginx/sites-enabled/default 文件內(nèi)容
server {
listen 8081;
server_name localhost;
location ^~ /source/ {
auth_basic "source";
auth_basic_user_file /home/wsk/htpasswd.conf;
proxy_pass http://127.0.0.1:666/;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
location ^~ /git/ {
auth_basic "git";
auth_basic_user_file /home/wsk/htpasswd.conf;
proxy_pass http://127.0.0.1:777;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
注意:
1.因為條件有限,上面的配置,并不包含NAT的過程。如果服務(wù)處于NAT后,上面的配置需要做如下變更:其中9999對應(yīng)的是外部的端口
proxy_set_header Host $host:9999;
2.location ^~中的^~為匹配前綴路徑,詳見參考
增加賬號:
touch htpasswd.conf (首次執(zhí)行必選)
htpasswd -b htpasswd.conf $usrname $passwd
創(chuàng)建source對應(yīng)的服務(wù):
創(chuàng)建git對應(yīng)的服務(wù):
訪問source: 第一次訪問的時候,會先進(jìn)行鑒權(quán),當(dāng)鑒權(quán)成功后才能繼續(xù)訪問重定向的網(wǎng)站
訪問git服務(wù): 如果第一次訪問source已經(jīng)輸入過密碼了,這次訪問git就不需要再次輸入。
為了更好的閱讀體驗,建議訪問個人首發(fā)地址: nginx應(yīng)用 反向代理,統(tǒng)一鑒權(quán),目錄重定向 - whilewell - 博客園
以前,我們學(xué)C語言的時候,多多少少都查過一些標(biāo)準(zhǔn)庫函數(shù)吧。這里介紹查找C語言的標(biāo)準(zhǔn)庫函數(shù)的兩種方法:一種方法是直接到http://www.cplusplus.com這個網(wǎng)站上去查看:
這里覆蓋了C語言標(biāo)準(zhǔn)庫中的所有函數(shù),給出了每個函數(shù)的介紹并且都給出了具體的用法示例,比如:
只不過都是英文的說明,可見英文的重要性。
另一種方法是,找一些離線的文檔,網(wǎng)上有不少人整理了一些離線的文檔,比如.chm格式(已編譯的幫助文件)的文檔:
里面大概是這樣子的:
也可以很方便的查找每個函數(shù)的用法,但是,這里面的不是很全,所以查找C標(biāo)準(zhǔn)庫函數(shù)還是建議到http://www.cplusplus.com上面去查找。
本文分享的重點就是.chm文件的制作。最近需要對自己的一些代碼做一些整理,發(fā)現(xiàn)整理成.chm文件是個不錯的選擇,.chm文件可以根據(jù)我們的代碼生成,下面把生成.chm文件的方法分享給大家。
需要三個工具:doxygen安裝包、graphviz安裝包、htmlhelp安裝包。其中doxygen是一種開源跨平臺的文檔系統(tǒng),doxygen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。
doxygen可以生成好幾種格式的文檔,要生成.chm格式的手冊就必須安裝htmlhelp,要生成關(guān)系圖必須安裝依graphviz。這個個工具的獲取方法:
(1)doxygen安裝包:
http://www.doxygen.nl/download.html
(2)graphviz安裝包:
http://www.graphviz.org/
(3)htmlhelp安裝包:
https://www.microsoft.com/en-us/download/details.aspx?id=21138
鏈接:https://pan.baidu.com/s/1gsJxkGsoO0ncy0GGM6PyQw 提取碼:3754
若鏈接失效可聯(lián)系我。
下載的都是.exe格式的可執(zhí)行文件,就按平時安裝軟件的方法安裝件就可以了。但是,需要記住graphviz與htmlhelp的安裝路徑,后面使用Doxygen時需要用到。
Doxygen可以根據(jù)固定格式的代碼注釋生成相對應(yīng)的.chm格式的手冊。支持的語言有好多種,如C/C++/C#/Objective-C/PHP/Java等。這里主要是分享C語言,Doxygen可以識別的固定格式注釋有以下幾種:
這里,我使用第一種,如:
/**
* 函數(shù)功能:字符串逆序函數(shù)
* @param src_str:字符串
* @param str_len:字符串長度
* @return 逆序之后得到的字符串
*/
char *Str_ReverseOrder(char *src_str,int str_len)
{
char *dst_str = src_str;
char temp;
printf("Method 1!\n");
for(int i=0;i<str_len/2;i++)
{
temp = src_str[i];
src_str[i] = src_str[str_len-i-1];
src_str[str_len-i-1] = temp;
}
return (char*)dst_str;
}
所有的函數(shù)都使用這樣統(tǒng)一格式的注釋。
下面看一下我們生成的.chm文件:
以上就是本次的分享,感謝閱讀!
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。