編譯buildlog命令
1. linux鍔犺澆鍐呮牳妯″潡鍛戒護linux鍔犺澆鍐呮牳
linux涓嬫寕杞界佺洏鐨勫懡浠ゆ槸浠涔堬紵
鎴戠殑錛歭inux涓嬫寕杞界佺洏鐨勫懡浠ゆ槸mount銆
棣栧厛闇瑕佹湁鎸傝澆鐐癸紝鎴栬呭彲浠ュ壋寤烘寕杞界偣銆
mkdir-p鐩褰曞悕
鐒跺悗浣跨敤mount-t綾誨瀷/dev/sdbx錛堣懼囧悕錛/mnt/abc(鎸傝澆鐐癸級
綾諱技榪欐牱鐨勬搷浣滃幓鎸傝澆銆
鐒跺悗浣跨敤mount鍛戒護鎴栬卍f-Th鍘繪煡鐪嬫寕杞芥儏鍐點
Linux涓嬬佺洏鎸傝澆鍛戒護鏄痬ount,鍗歌澆鍛戒護鏄痷mount銆
windows鏃犳硶鍚鍔ㄦ庢牱鍔犺澆鍐呮牳鎵闇鐨凞LL鏂囦歡錛
鐢佃剳寮鏈烘椂鍑虹幇鎻愮ず鈥滅敱浜庝竴涓杞浠墮敊璇錛學INDOWS鏃犳硶鍚鍔ㄣ傝鋒姤鍛婅繖涓闂棰橈細鍔犺澆鍐呮牳鎵闇鐨凞LL鏂囦歡錛岃瘋仈緋諱綘鐨勬妧鏈浜哄憳銆傗濇晠闅滃師鍥狅細緋葷粺鍐呮牳DLL鏂囦歡涓㈠け鎴栨崯鍧忋備慨澶嶆柟娉曪細鍏蜂綋淇澶嶆柟娉曡佷笅銆傦紙涓嬮潰浠XP緋葷粺涓轟緥錛岃繘琛岃存槑錛夈愮郴緇熷唴鏍窪LL鏂囦歡涓㈠け鎴栨崯鍧忎慨澶嶆柟娉曘戱細鏂規硶1銆佹渶鍚庝竴嬈℃g『閰嶇疆鐢佃剳閲嶅惎錛屽紑鏈鴻嚜媯涓榪囷紝椹涓婃寜鎸塅8閿錛岄夋嫨鈥滄渶鍚庝竴嬈℃g『閰嶇疆鈥濄傘愮ず渚嬫埅鍥俱戞柟娉2銆佸湪瀹夊叏妯″紡涓嬶紝榪涜屼慨澶嶃傜數鑴戦噸鍚錛屽紑鏈鴻嚜媯涓榪囷紝椹涓婃寜鎸塅8閿錛岄夋嫨鈥滃畨鍏ㄦā寮忊濄傝嫢鑳借繘瀹夊叏妯″紡錛屽彲鍦ㄥ畨鍏ㄦā寮忎笅錛岀敤絎涓夋柟鍑哄搧鐨凞LL淇澶嶅伐鍏瘋繘琛屼慨澶嶃傘愮ず渚嬫埅鍥俱戞柟娉3銆佸湪甯﹀懡浠よ岀殑瀹夊叏妯″紡涓嬶紝浣跨敤DOS鍛戒護錛岃繘琛屼慨澶嶃傛妸XP緋葷粺鐩樻斁鍦ㄥ厜椹遍噷銆傜數鑴戦噸鍚錛屽紑鏈鴻嚜媯涓榪囷紝椹涓婃寜鎸塅8閿錛岄夋嫨鈥滃甫鍛戒護琛岀殑瀹夊叏妯″紡鈥濄傚湪鍛戒護鎻愮ず絎︿笅錛屼嬌鐢―OS鍛戒護錛屾妸鍏夌洏閲岀殑DLL鏂囦歡澶嶅埗鍒癈鐩橀噷鐨刉INDOWS涓嬬殑SYSTEM鍜孲YSTEM32鏂囦歡澶歸噷銆傝嗙洊宸叉崯鍧忕殑鍚屽悕鐨凞LL鏂囦歡鎴栬ˉ鍏ㄥ凡涓㈠け鐨凞LL鏂囦歡銆備慨澶嶅畬姣曞悗錛岄噸鍚鐢佃剳銆傘愮ず渚嬫埅鍥俱戞柟娉4銆佷嬌鐢║鐩樺惎鍔ㄧ洏錛岃繘琛屼慨澶嶃傛妸U鐩樺惎鍔ㄧ洏鎻掑叆鍏朵粬鑳芥e父鍚鍔ㄧ殑XP緋葷粺鐨勭數鑴戜笂錛屾嫹璐滳:WINDOWS涓嬬殑SYSTEM鍜孲YSTEM32鏂囦歡澶廣傜劧鍚庯紝鎶奤鐩樺惎鍔ㄧ洏鎻掑洖鏈鏈虹數鑴戱紝璁劇疆U鐩樺惎鍔ㄥ紩瀵艱繘WinPE銆傚嶅埗U鐩橀噷鐨凷YSTEM鍜孲YSTEM32鏂囦歡澶圭矘璐村埌C:WINDOWS鏂囦歡澶逛笅錛岃嗙洊宸叉崯鍧忕殑鍚屽悕鐨凞LL鏂囦歡鎴栬ˉ鍏ㄥ凡涓㈠け鐨凞LL鏂囦歡銆傜劧鍚庯紝閲嶅惎榪汢IOS錛屾敼鍥炵‖鐩樺惎鍔ㄣ傞噸鍚鐢佃剳銆傛柟娉5銆佷嬌鐢╔P鍘熺増瀹夎呭厜鐩橈紝榪涘叆鎺у埗淇澶嶅彴錛岃繘琛屼慨澶嶃傗憼銆佸皢XP鍘熺増瀹夎呭厜鐩樻彃鍏ュ厜椹憋紝閲嶅惎鐢佃剳錛屽彴寮忔満鎸塂EL閿錛堢瑪璁版湰涓鑸鏄鎸塅2閿錛屽搧鐗屽拰鏈哄瀷涓嶅悓錛岃繘BIOS鐨勬寜閿浼氭湁鎵涓嶅悓銆傛敞鎰忕湅寮鏈鴻嚜媯鎻愮ず鎴栨煡鐪嬬瑪璁版湰璇存槑涔︺傦級榪汢IOS璁劇疆錛屾妸絎涓鍚鍔ㄩ」鐢辯‖鐩橈紙HDD錛夋敼涓哄厜椹憋紙CDROM錛夈備繚瀛樿劇疆錛岄噸鍚鐢佃剳銆傗憽銆佷竴姝ユユ寜鎻愮ず鎿嶄綔錛岃繘鍏ユ帶鍒朵慨澶嶅彴銆傚湪鍛戒護鎻愮ず絎︹渃:windows>鈥濅笅錛岃緭鍏ョ郴緇熷垎鍖虹洏絎︹啋C鈫掑洖杞︺傜劧鍚庯紝杈撳叆瀵嗙爜銆傚傛灉鏄瀵嗙爜鏄絀虹殑錛岀洿鎺ユ寜鍥炶濺璺寵繃銆備箣鍚庯紝浼氬嚭鐜頒笅闈㈢殑鍛戒護鎻愮ず絎︼細c:windows>杈撳叆浠ヤ笅鍛戒護錛歝:windows>cdx:錛堟敞錛歺涓哄厜椹辯洏絎︼紝濡傦紝e錛氾級鈫掑洖杞e:>cdi386鈫掑洖杞e:i386>*.dllc:windowssystem鈫掑洖杞e:i386>*.dllc:windowssystem32鈫掑洖杞︾瓑寰呬慨澶岲LL瀹屾瘯錛岄噸璧風數鑴戙傘愮ず渚嬫埅鍥俱
linux鍐呮牳鐨勪富瑕佺粍鎴愰儴鍒嗘湁鍝浜涳紵
Linux緋葷粺涓鑸鏈4涓涓昏侀儴鍒嗭細鍐呮牳銆乻hell銆佹枃浠剁郴緇熷拰搴旂敤紼嬪簭銆傚唴鏍搞乻hell鍜屾枃浠剁郴緇熶竴璧峰艦鎴愪簡鍩烘湰鐨勬搷浣滅郴緇熺粨鏋勶紝瀹冧滑浣垮緱鐢ㄦ埛鍙浠ヨ繍琛岀▼搴忋佺$悊鏂囦歡騫朵嬌鐢ㄧ郴緇熴備竴錛嶭inux鍐呮牳鍐呮牳鏄鎿嶄綔緋葷粺鐨勬牳蹇冿紝鍏鋒湁寰堝氭渶鍩烘湰鍔熻兘錛屽傝櫄鎷熷唴瀛樸佸氫換鍔°佸叡浜搴撱侀渶奼傚姞杞姐佸彲鎵ц岀▼搴忓拰TCP/IP緗戠粶鍔熻兘銆侺inux鍐呮牳鐨勬ā鍧楀垎涓轟互涓嬪嚑涓閮ㄥ垎錛氬瓨鍌ㄧ$悊銆丆PU鍜岃繘紼嬬$悊銆佹枃浠剁郴緇熴佽懼囩$悊鍜岄┍鍔ㄣ佺綉緇滈氫俊銆佺郴緇熺殑鍒濆嬪寲鍜岀郴緇熻皟鐢ㄧ瓑銆
浜岋紟Linuxshellshell鏄緋葷粺鐨勭敤鎴風晫闈錛屾彁渚涗簡鐢ㄦ埛涓庡唴鏍歌繘琛屼氦浜掓搷浣滅殑涓縐嶆帴鍙c傚畠鎺ユ敹鐢ㄦ埛杈撳叆鐨勫懡浠ゅ苟鎶婂畠閫佸叆鍐呮牳鍘繪墽琛岋紝鏄涓涓鍛戒護瑙i噴鍣ㄣ
鍙﹀栵紝shell緙栫▼璇璦鍏鋒湁鏅閫氱紪紼嬭璦鐨勫緢澶氱壒鐐癸紝鐢ㄨ繖縐嶇紪紼嬭璦緙栧啓鐨剆hell紼嬪簭涓庡叾浠栧簲鐢ㄧ▼搴忓叿鏈夊悓鏍風殑鏁堟灉銆
涓夛紟Linux鏂囦歡緋葷粺鏂囦歡緋葷粺鏄鏂囦歡瀛樻斁鍦ㄧ佺洏絳夊瓨鍌ㄨ懼囦笂鐨勭粍緇囨柟娉曘侺inux緋葷粺鑳芥敮鎸佸氱嶇洰鍓嶆祦琛岀殑鏂囦歡緋葷粺錛屽侲XT2銆丒XT3銆丗AT銆丗AT32銆乂FAT鍜孖SO9660銆傚洓錛嶭inux搴旂敤紼嬪簭鏍囧噯鐨凩inux緋葷粺涓鑸閮芥湁涓濂楅兘鏈夌О涓哄簲鐢ㄧ▼搴忕殑紼嬪簭闆嗭紝瀹冨寘鎷鏂囨湰緙栬緫鍣ㄣ佺紪紼嬭璦銆乆Window銆佸姙鍏濂椾歡銆両nternet宸ュ叿鍜屾暟鎹搴撶瓑銆
tunko鍐呮牳妯″潡鎬庝箞鍔犺澆錛
1.hello.c
#include
#include
MODULE_LICENSE("DualBSD/GPL");
MODULE_AUTHOR("MDAXIA");
staticint__inithello_init(void)
{
printk(KERN_ALERT"Helloworld!n");
return0;
}
staticvoid__exithello_exit(void)
{
printk(KERN_ALERT"Goodbye,cruelworld!");
}
mole_init(hello_init);
mole_exit(hello_exit);
2.Makefile
ifeq($(KERNELRELEASE),)
KDIR:=/lib/moles/$(shelluname-r)/build
PWD:=$(shellpwd)
moles:
$(MAKE)-C$(KDIR)M=$(PWD)moles
moles_install:
$(MAKE)-C$(KDIR)M=$(PWD)moles_install
clean:
rm-rf*.o*.ko.depend*.mod.o*.mod.cMole.*moles.*
.PHONY:molesmoles_installclean
else
obj-m:=hello.o
endif
3.緙栬瘧妯″潡
#sudomake錛堣皟鐢ㄧ涓涓鍛戒護default錛
榪欐椂錛屽湪hello.c鎵鍦ㄦ枃浠跺す灝變細鏈塰ello.ko錛岃繖涓灝辨槸鎴戜滑闇瑕佺殑鍐呮牳妯″潡鍟
#sudomakeclean
娓呯悊緙栬瘧鍨冨溇錛宧ello.ko涔熶細娓呯悊鎺夈
4.鎻掑叆妯″潡錛岃╁叾宸ヤ綔銆傛敞鎰忓繀欏繪槸root鏉冮檺
#sudoinsmod./hello.ko
鎴戜滑鐢╠mesg灝卞彲浠ョ湅鍒頒駭鐢熺殑鍐呮牳淇℃伅鍟︼紝Helloworld!
濡傛灉娌℃湁杈撳嚭"hellofromhelloworld"錛屽洜涓哄傛灉浣犲湪瀛楃︾粓絝鑰屼笉鏄緇堢妯℃嫙鍣ㄤ笅榪愯岀殑璇濓紝灝變細杈撳嚭錛屽洜涓哄湪緇堢妯℃嫙鍣ㄤ笅鏃朵細鎶婂唴鏍告秷鎮杈撳嚭鍒版棩蹇楁枃浠/var/log/kern.log涓銆
#sudormmod./hello
鍐嶇敤dmesg鍙浠ョ湅鍒癇yeworld!
鎵╁睍闃呰伙細
紺轟緥涓灝嗗紑鏈轟俊鎮鍙戦偖浠
mandmesg鍐欓亾
.Insteadofingthemessagesbyhand,theuserneedonly:
dmesg>boot.messages
andmailtheboot..
#dmesg>boot.messages
#ls-lboot.messages
-rw-r--r--1rootroot1583812-0912begin_of_the_skype_highlighting1583812-0912鍏嶈垂end_of_the_skype_highlighting:55boot.messages
#mail-s"BootLogofLinuxServer"[email protected]
#
閫氳繃綆¢亾鏌ユ壘
dmesg|grepworld
dmesg|tail
dmesg-a
dmesg-c鎵撳嵃騫舵竻闄
linux椹卞姩紼嬪簭濡備綍璋冪敤錛
linux椹卞姩紼嬪簭鎸変互涓嬫柟娉曡皟鐢錛
1銆佽繘鍏ュ埌Ubuntu妗岄潰鍚庯紝鎵撳紑緇堢錛屽揩鎹烽敭涓篶trl+alt+T銆
2銆佺劧鍚庡壋寤轟竴涓鏂囦歡澶規潵瀛樻斁緙栧啓鐨勮剼鏈鏂囦歡銆
3銆佹壘鍒拌佹墦寮鐨勬墽琛岀▼搴忕殑璺寰勶紝榪欓噷浠ョ伀鐙愪負渚嬨傚湪/usr/bin涓嬫湁鐏鐙愮殑鎵ц岀▼搴忋
4銆佽緭鍏cd/usr/local/myShell榪涘叆鍒氬垰鍒涘緩鐨勬枃浠跺す銆
5銆佸傛灉浣犲笇鏈涚▼搴忔槸鍦ㄥ悗鍙版墽琛岋紝鍙浠ュ湪緇堢鎸塩trl+C閫鍑虹▼搴忥紝閲嶆柊杈撳叆./openFireFox.sh錛岃繖鏍峰氨鑳藉湪鍚庡彴榪愯岀▼搴忥紝緇堢涔熷彲浠ョ戶緇浣跨敤銆
2. 使用MSBuild編譯與使用VS編譯有什麼不同嗎
vs就是調用msbuild編譯的。前提是你獨立用msbuild,你參數得用對,你可以和vs輸出窗口(需要打開詳細輸出)的msbuild的命令行對照。舉個例子:
1.在MS.Build.下Task為我們實現了基本的ITask信息。我們可以從這里繼承開始
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceFirstBuildTask
{
publicclassMyBuildTask:Microsoft.Build.Utilities.Task
{
privatestringoutputFile;
[Microsoft.Build.Framework.Required]
publicstringOutputFile
{
get{returnoutputFile;}
set{outputFile=value;}
}
publicoverrideboolExecute()
{
Log.LogWarning("testmessage:"+this.outputFile);
returntrue;
}
}
}
2.用VS重新載入編譯或者是MSBuild控制台編譯:UsingTask:定義:<UsingTask TaskName="TaskName" AssemblyName = "AssemblyName" TaskFactory = "ClassName" Condition="'String A'=='String B'" />
3. Xcode 構建速度優化(一)衡量編譯時間
隨著項目不斷迭代,工程文件越來越多,引用的三方庫也越來越多,這些直接導致編譯時間的不斷增加,完整編譯一次項目動輒需要五分鍾以上時間,實在有些影響開發效率,是時候來一波提速了。
為編譯和構建提速,首先我們需要對速度有一個衡量標准:准確獲得構建用時
首先,我們需要定義要衡量和優化的內容。 有兩種選擇:
xcode默認情況下會跟蹤所有構建,我們可以通過更改xcode相關設置,來在活動查看器中顯示出構建時間,通過命令行:
每次編譯成功後,會在Successed之後顯示出所用時間:
Xcode Build Timing Summary是Xcode10中加入的用於查看獲取構建時間和發現用時瓶頸方面的最有利工具。 可以通過Proct->Perform Action->Build With Timing Summary來開啟:這樣在 Build Log 的末尾就會添加 Timing Summary Log。我們可以通過這個 log 看到哪個階段是耗時的,便於我們進行優化。
如上圖中: xib階段的編譯耗時明顯是比普通c文件要多的,意味著我們可以通過減少xib方式來優化提升速度
而c文件的編譯用時比總時間還要長,是因為c文件是並行編譯的
在命令行中同樣可以開啟這個功能:
常用的第三方工具有 BuildTimeAnalyzer 、 xcode-build-times-rendering 、 XCLogParser 。
BuildTimeAnalyzer可以統計可以得出某個文件的類型檢查時長,每個表達式的類型檢查時長。
xcode-build-times-rendering是一個Ruby編寫的第三方工具,可以方便地分別測量目標的構建時間並在圖表上顯示它們,使用gem安裝
接下來使用這個工具自帶命令配置項目
然後構建項目並生成報告:
這個工具使用上比較簡單,缺點是只能從宏觀上生成各個target編譯的整體圖標,無法詳細列出各個內部編譯明細
XCLogParser可以詳細列出各個Target和內部每個文件的編譯耗時,對我們分析編譯時間瓶頸非常有幫助,它的工作原理主要是做為解析器,通過解析xcode編譯生成的xcactivitylog日誌來記錄
安裝:
編譯項目後,進行安裝
安裝成功後通過命令:
會自動在當前目錄的 build/xclogparser/reports/ 路徑下生成報告,其中--project參數需要設置為待分析項目的名字,並注意當前在終端切換到希望寫入日誌的目錄。
報告截圖:
這個工具將作為我們後面分析提升編譯構建速度的主要使用工具。
經過我多次在不同時間段,不同電腦上不斷嘗試編譯,
我發現編譯耗時是一個比較玄的東西,及時在同一台電腦,同一個項目, 同一套環境配置下,編譯用時也會隨著電腦當前狀態(包括同時打開進程、散熱等等)上下大幅跳動,就像演算法時間復雜度一樣,有時候我們明明做了一些細微的優化,但是結果反而是編譯耗時增加了,這是很正常的事情
所以,衡量這個標准需要我們取多次試驗中的平均值作為參考。
4. 緙栦簡涓涓猣ortran紼嬪簭錛岀紪璇戠殑鏃跺欒佹槸鍑洪敊錛屽洜涓鴻儲瀵屽兼槸4錛屾偓璧忓彧鑳戒負0錛屼絾鏄寰堢潃鎬ワ紝榪樿峰ぇ瀹跺府蹇欙紒
棣栧厛錛屾偍鐨勮礬寰勪笉瀵癸紝鏂囦歡璺寰勬槸涓嶈兘鏈変腑鏂囧悕鐨勶紝鎮ㄦ渶濂界洿鎺ュ湪鈥渕y project鈥濅笅闈㈣繍琛屻傚叾嬈★紝鎮ㄧ殑鐭╅樀鎴栬呭悜閲忕殑鏍煎紡鍜屽ぇ灝忎笉瀵圭殑錛屾垨鑰呭彲鑳藉湪瀹氫箟鐨勬椂鍊欏嚭浜嗛敊璇錛屽師鍥犳槸鎮ㄧ殑鍓嶅嚑涓閿欒鐨勬彁紺烘槸涓鏍風殑銆傚緩璁鎮ㄥ厛鎶婅礬寰勬敼姝d竴涓嬶紝鐒跺悗鍐嶉愪釜璋冭瘯閿欒鐨勫彞瀛愩
鐢變簬娌℃湁婧愮▼搴忥紝鎴戣兘鐭ラ亾鐨勫彧鏈夎繖浜涗簡銆
涓浜烘剰瑙侊紝璇鋒偍鍙傝冦