亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Linux服務器 > 正文

linux 程序、動態庫、靜態庫內部添加版本號和編譯時間詳解

2024-09-05 23:03:23
字體:
來源:轉載
供稿:網友

給程序和庫添加版本號和庫,有利于維護和升級。

當然你可以在文件名上體現,比如有個程序叫 yun,文件名寫為 yun_1.0.2,但這個需要每次手動維護,而且不能100%確保當前程序就是那個版本。所以,把版本號體現在程序內部,是一個不錯的選擇。

----------------------------- 我是做法分割線 -------------------------------

一、可執行程序

程序內部定義版本宏,然后 main 函數通過 -v 參數,打印版本號和編譯時間,代碼如下:

注:__DATE__(編譯日期), __TIME__(編譯時間)

#include <stdio.h>#include <string.h>#define VERSION	"0.0.2" // 此處每次發布版本要手動更新#define NAME	"yun"static void show_info(char *argv[]){	if (0 == strcmp("-v", argv[1]))	{		printf("%s version: %s (%s, %s)/n", NAME, VERSION, __DATE__, __TIME__);		return;	}	else if (0 == strcmp("-h", argv[1]))	{		printf("Usage: %s [options]/n", NAME);		printf("Options:/n");		printf(" void/tRun %s/n", NAME);		printf(" -v/tDisplay %s version information/n", NAME);		printf(" -h/tDisplay help information/n");		return;	}		printf("Usage: %s [-v | -h]/n", NAME);	return;}int main(int argc, char *argv[]){	if (2 == argc)	{		show_info(argv);		return 0;	}	printf("Can you feel me?/n");	return 0;}

運行效果:

動態庫,靜態庫

二、動態庫、靜態庫

庫不采用 -v 這種方法,因為不是可執行程序。

我們可以給程序添加一個版本號字符串,編譯成庫后使用 strings 命令查看,代碼如下:

/* add.h */

#ifndef _ADD_H_#define _ADD_H_int add(int a, int b);#endif /* _ADD_H_ */

/* add.c */

#include "add.h"// 此處每次發布版本要手動更新const char *LIB_INFO = "libadd version: 0.0.3 (2015-01-30, 08:30)";int add(int a, int b){return (a + b);}

編譯及運行結果:

/* 靜態庫 */

動態庫,靜態庫

/* 動態庫 */

動態庫,靜態庫

說明:

strings 命令: 用于顯示文件中的可打印字符。

grep: 用于過濾無用信息,因為自定義的庫信息包含 "version",所以就只顯示包含 "version" 的行,否則其他信息太多不好找。

此方法也可適用于可執行程序添加版本信息。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲最大福利网| 久久久久北条麻妃免费看| 亚洲第一网中文字幕| 亚洲精美色品网站| 国产精品露脸自拍| 欧美一乱一性一交一视频| 久久躁狠狠躁夜夜爽| 久久精品色欧美aⅴ一区二区| 日韩性生活视频| 成人羞羞国产免费| 日韩av片电影专区| 欧美午夜宅男影院在线观看| 亚洲品质视频自拍网| 欧美日韩亚洲精品一区二区三区| 91久久久久久久久久久| 日韩欧美一区二区三区| 国产精品永久免费| 欧美多人乱p欧美4p久久| 欧美乱人伦中文字幕在线| 亚洲一区二区三区毛片| 91精品国产综合久久香蕉| 成人网在线观看| 国产精品极品在线| 国产极品jizzhd欧美| 色播久久人人爽人人爽人人片视av| 久久人人爽人人爽人人片av高请| 日韩经典中文字幕| 亚洲精品丝袜日韩| 亚洲二区在线播放视频| 91免费看国产| 在线观看日韩av| 久久久免费精品视频| 国产一区二区三区免费视频| 日韩在线视频观看正片免费网站| 中文字幕精品一区久久久久| 26uuu日韩精品一区二区| 欧美在线www| 亚洲午夜色婷婷在线| 久久激情视频免费观看| 久久国产精品网站| 国产日韩在线看片| 一区二区三区四区精品| 国产aⅴ夜夜欢一区二区三区| 欧美性猛交xxxx乱大交| 狠狠做深爱婷婷久久综合一区| 中文字幕9999| 欧美精品九九久久| 亚洲成人a级网| 亚洲精品日韩av| 精品少妇v888av| 日韩h在线观看| 国产精品亚洲片夜色在线| 在线播放国产一区中文字幕剧情欧美| 国产精品福利观看| 久久亚洲精品国产亚洲老地址| 精品丝袜一区二区三区| 欧美中文字幕在线观看| 国产精品久久久久91| 亚洲护士老师的毛茸茸最新章节| 永久免费精品影视网站| 国产日本欧美一区| 91精品国产99| 97精品一区二区视频在线观看| 免费91麻豆精品国产自产在线观看| 欧美裸体男粗大视频在线观看| 91精品视频在线免费观看| 这里只有精品丝袜| 欧美成人三级视频网站| 日本韩国欧美精品大片卡二| 国产成人短视频| 欧美日韩一区二区三区| 中文字幕一区日韩电影| 亚洲综合社区网| 91性高湖久久久久久久久_久久99| 亚洲国产精品久久精品怡红院| 在线日韩欧美视频| 国产亚洲欧美视频| 欧美日韩国产中文精品字幕自在自线| 国产精品精品视频一区二区三区| 国产精品久久久久久久久久久久久| 国产一区二区三区欧美| 久久成人精品一区二区三区| 亚洲综合一区二区不卡| 欧美电影在线播放| 国产精品男人爽免费视频1| 国产va免费精品高清在线| 亚洲国产欧美在线成人app| 久久99热这里只有精品国产| 国产乱人伦真实精品视频| 日韩av免费网站| 尤物九九久久国产精品的分类| 国产色综合天天综合网| 456国产精品| 国内精品久久久久影院优| 成人亚洲综合色就1024| 国产精品69久久| 精品国产精品三级精品av网址| 一区国产精品视频| 91性高湖久久久久久久久_久久99| 国产精品一区二区久久久久| 欧美黑人视频一区| 亚洲最大的av网站| 日韩精品视频免费专区在线播放| 91精品国产91久久久久福利| 成人午夜黄色影院| 国产大片精品免费永久看nba| 国产亚洲欧美日韩美女| 色www亚洲国产张柏芝| 成人精品一区二区三区电影免费| 欧洲成人在线观看| 欧美日韩不卡合集视频| 91在线网站视频| 亚洲精品国偷自产在线99热| 国产精品444| 中文字幕日韩精品有码视频| 日韩在线视频免费观看| 国产精品网红直播| 一个人看的www欧美| 九九热精品在线| 亚洲国产毛片完整版| 日韩av在线免费看| 欧美一性一乱一交一视频| 久久久精品久久久| 欧美xxxx14xxxxx性爽| 欧美成人手机在线| 日韩电影第一页| 亚洲人成电影在线观看天堂色| 国产精品视频在线播放| 日韩视频在线一区| 欧美大人香蕉在线| 97精品一区二区三区| 91免费国产视频| 国产精品久久久久久久久久久久久久| 久久精品国产精品亚洲| 日韩av不卡电影| 久久久久久久久久久久久久久久久久av| 亚洲成色www8888| 精品久久久999| 欧美激情啊啊啊| 国产亚洲欧美日韩一区二区| 亚洲老板91色精品久久| 亚洲午夜精品久久久久久久久久久久| 久久精品视频在线| 国产日韩精品视频| 欧美性69xxxx肥| 国产成人小视频在线观看| 欧美日韩亚洲高清| 日韩成人av一区| 欧美网站在线观看| 亚洲精品国偷自产在线99热| 成人黄色免费在线观看| 日韩高清av一区二区三区| 日韩一区av在线| 国产精品999999| 韩日精品中文字幕| 欧美亚洲在线视频| 国产精品久久久久秋霞鲁丝| 亚洲男人天堂古典| 欧美性在线视频| 亚洲久久久久久久久久久| 奇门遁甲1982国语版免费观看高清| 日韩精品在线播放| 久久亚洲精品视频| 亚洲美女av在线播放|