编译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竴涓嬶纴铹跺悗鍐嶉愪釜璋冭瘯阌栾镄勫彞瀛愩
鐢变簬娌℃湁婧愮▼搴忥纴鎴戣兘鐭ラ亾镄勫彧链夎繖浜涗简銆
涓浜烘剰瑙侊纴璇锋偍鍙傝冦