1.C#è¯è¨çç¼è¯ç¯å¢
2.linuxä¸å
³äºadbå½ä»¤çä¸äºç¥è¯
3.make 和 make install的区别是是什么?
4.Linux 下的 make, configure 究竟有多难用?
C#è¯è¨çç¼è¯ç¯å¢
ç´æ¥ç¨NET Frameworkèªå¸¦çcsc.exeè¿è¡ç¼è¯å°±å¯ä»¥äºï¼å ¨å½ä»¤è¡æ¹å¼
======================
C:\>csc /help |more
Microsoft (R) Visual C# ç¼è¯å¨çæ¬7.. [CLR version v1.0.]
çæææ (C) Microsoft Corp -ãä¿çæææå©ã
Visual C# ç¼è¯å¨é项
- è¾åºæ件 -
/out:<æ件> è¾åºæ件åï¼å¦ææªæå®ï¼åä»ç¬¬ä¸ä¸ªæºæ件派çï¼
/target:exe çææ§å¶å°å¯æ§è¡æ件ï¼é»è®¤ï¼ (缩å: /t:exe)
/target:winexe çæ Windows å¯æ§è¡æ件 (缩å: /t:winexe)
/target:library çæåº (缩å: /t:library)
/target:module çæè½æ·»å å°å ¶ä»ç¨åºéç模å (缩å: /t:module)
/define:<符å·å表> å®ä¹æ¡ä»¶ç¼è¯ç¬¦å· (缩å: /d)
/doc:<æ件> è¦çæç XML ææ¡£æ件
- è¾å ¥æ件 -
/recurse:<éé 符> æ ¹æ®éé 符è§èï¼å æ¬å½åç®å½ååç®å½ä¸çæææ件
/reference:<æ件å表> ä»æå®çç¨åºéæ件å¼ç¨å æ°æ® (缩å: /r)
/addmodule:<æ件å表> å°æå®ç模åé¾æ¥å°æ¤ç¨åºéä¸
- èµæº -
/winres:<æ件> æå® Win èµæºæ件 (.res)
/winicon:<æ件> 使ç¨è¯¥å¾æ è¾åº
/resource:<èµæºä¿¡æ¯> åµå ¥æå®çèµæº (缩å: /res)
/linkresource:<èµæºä¿¡æ¯>å°æå®çèµæºé¾æ¥å°æ¤ç¨åºéä¸ (缩å: /linkres)
- 代ç çæ -
/debug[+|-] ååºè°è¯ä¿¡æ¯
/debug:{ full|pdbonly} æå®è°è¯ç±»åï¼âfullâæ¯é»è®¤ç±»åï¼å¯ä»¥å°è°è¯ç¨åº
éå å°æ£
å¨è¿è¡çç¨åºï¼
/optimize[+|-] å¯ç¨ä¼å (缩å: /o)
/incremental[+|-] å¯ç¨å¢éç¼è¯ (缩å: /incr)
- é误åè¦å -
/warnaserror[+|-] å°è¦åè§ä¸ºé误
/warn: 设置è¦åç级 (0-4) (缩å: /w)
/nowarn:<è¦åå表> ç¦ç¨æå®çè¦åä¿¡æ¯
/reference:<æ件å表> ä»æå®çç¨åºéæ件å¼ç¨å æ°æ® (缩å: /r)
/addmodule:<æ件å表> å°æå®ç模åé¾æ¥å°æ¤ç¨åºéä¸
- èµæº -
/winres:<æ件> æå® Win èµæºæ件 (.res)
/winicon:<æ件> 使ç¨è¯¥å¾æ è¾åº
/resource:<èµæºä¿¡æ¯> åµå ¥æå®çèµæº (缩å: /res)
/linkresource:<èµæºä¿¡æ¯>å°æå®çèµæºé¾æ¥å°æ¤ç¨åºéä¸ (缩å: /linkres)
- 代ç çæ -
/debug[+|-] ååºè°è¯ä¿¡æ¯
/debug:{ full|pdbonly} æå®è°è¯ç±»åï¼âfullâæ¯é»è®¤ç±»åï¼å¯ä»¥å°è°è¯ç¨åº
éå å°æ£
å¨è¿è¡çç¨åºï¼
/optimize[+|-] å¯ç¨ä¼å (缩å: /o)
/incremental[+|-] å¯ç¨å¢éç¼è¯ (缩å: /incr)
- é误åè¦å -
/warnaserror[+|-] å°è¦åè§ä¸ºé误
/warn: 设置è¦åç级 (0-4) (缩å: /w)
/nowarn:<è¦åå表> ç¦ç¨æå®çè¦åä¿¡æ¯
- è¯è¨ -
/checked[+|-] çæ溢åºæ£æ¥
/unsafe[+|-] å 许âä¸å®å ¨â代ç
- æ项 -
@<æ件> 读åååºæ件以è·å¾æ´å¤é项
/help æ¾ç¤ºæ¤ç¨æ³ä¿¡æ¯ (缩å: /?)
/nologo åæ¶ç¼è¯å¨çæä¿¡æ¯
/noconfig ä¸è¦èªå¨å å« CSC.RSP æ件
- é«çº§ -
/baseaddress:<å°å> è¦çæçåºçåºå
/bugreport:<æ件> å建ä¸ä¸ªâé误æ¥åâæ件
/codepage: æå®æå¼æºæ件æ¶è¦ä½¿ç¨ç代ç 页
/utf8output UTF-8 ç¼ç çè¾åºç¼è¯å¨æ¶æ¯
/main:<ç±»å> æå®å å«å ¥å£ç¹çç±»åï¼å¿½ç¥ææå ¶ä»å¯è½çå ¥å£ç¹ï¼
(缩å:
/m)
/fullpaths ç¼è¯å¨çæå®å ¨éå®è·¯å¾
/filealign: æå®ç¨äºè¾åºæ件èç对é½æ¹å¼
/nostdlib[+|-] ä¸å¼ç¨æ ååº (mscorlib.dll)
/lib:<æ件å表> æå®è¦å¨å ¶ä¸æç´¢å¼ç¨çéå ç®å½
linuxä¸å ³äºadbå½ä»¤çä¸äºç¥è¯
Android Debug Bridgeï¼ä¸è¬ç®ç§°ä¸ºadbï¼ä¸»è¦åæ¾å¨sdkå®è£ ç®å½ä¸çplatform-toolsæ件夹ä¸ï¼å®æ¯ä¸ä¸ªé常强大çå½ä»¤è¡å·¥å ·ï¼éè¿è¿ä¸ªå·¥å ·ä½ è½å¤ä¸ä½ çandroid设å¤è¿è¡äº¤äºãåæ¶è¿æ¯ä¸ä¸ªå å«äºä»¥ä¸ä¸é¨åçcs模å¼çç¨åºï¼
1) adb client
ããä»å¾ä¸ï¼æ们ç¥éclientæ¯è¿è¡å¨PC端çï¼æ¯å½æ们åèµ·ä¸ä¸ªadbå½ä»¤çæ¶åï¼å°±ä¼å¼å¯ä¸ä¸ªclientç¨åºãå½ç¶ï¼å½æ们å¼å¯DDMSæè ADTçæ¶åï¼ä¹ä¼èªå¨å建clientã
ããå½æ们å¼å¯ä¸ä¸ªclientçæ¶åï¼å®é¦å ä¼å»æ£æµåå°æ¯å¦å·²ç»æä¸ä¸ªserverç¨åºå¨è¿è¡çï¼å¦åä¼å¼å¯ä¸ä¸ªadb-serverè¿ç¨ã
ããææçclienté½æ¯éè¿ç«¯å£ä¸adb-serverè¿è¡éä¿¡çã
2ï¼adb daemonï¼adbdï¼
ããä»å¾ä¸ï¼æ们ç¥édaemonæ¯ä½ä¸ºä¸ä¸ªåå°è¿ç¨è¿è¡å¨æ¨¡æå¨/çå®Android设å¤ä¸çã
ããdaemon使ç¨ç«¯å£çèå´æ¯-ï¼æ¯ä¸ªæ¨¡æå¨/设å¤è¿æ¥å°PC端æ¶ï¼æ»ä¼å¼å¯è¿ä¹ä¸ä¸ªåå°è¿ç¨ï¼å¹¶ä¸ä¸ºå ¶åé äºä¸¤ä¸ªè¿ç»ç端å£ï¼æ¯å¦ï¼
ããããEmulator 1, console:
ããããEmulator 1, adb:
ããä¹æ£å 为æ¯ä¸ªè®¾å¤é½åä¸ç»ä¸¤ä¸ªç«¯å£ï¼ä¹å·²adbè¿æ¥ææºçæ大æ°é为ã
ãã说å端å£çä½ç¨ï¼å¨è¿ä¸¤ä¸ªç«¯å£ä¸ï¼å ¶ä¸å¶æ°ç«¯å£æ¯ç¨äºserver ä¸è®¾å¤è¿è¡äº¤äºçï¼å¯ä»¥è®©serverç´æ¥ä»è®¾å¤ä¸è¯»åæ°æ®ï¼èå¥æ°ç«¯å£æ¯ç¨æ¥ä¸è®¾å¤çadbdè¿è¡è¿æ¥éä¿¡çã
2) adb server
ããä»å¾ä¸ï¼æ们åæ ·å¯ä»¥ç¥éï¼serverä¹æ¯ä½ä¸ºä¸ä¸ªåå°çç¨åºè¿è¡å¨PC端çï¼ä»è´è´£ç®¡çclientè¿ç¨ä»¥åadb daemonä¹é´çéä¿¡ã
ããå½ä¸ä¸ªserverå¼å¯çæ¶åï¼ä»ä¼èªå¨ç»å®å¹¶ä¸çå¬ç«¯å£ï¼æ¥æ¶clientéè¿è¯¥ç«¯å£åéè¿æ¥çå½ä»¤ãåæ¶serverè¿ä¼å¯¹-é´çå¥æ°ç«¯å£è¿è¡æ«æï¼è¿è¡å¯¹å·²è¿æ¥è®¾å¤çå®ä½ã
1.2 常ç¨çadbå½ä»¤
é¦å æ们å æ¥ä»ç»ä¸ä¸ï¼adbå½ä»¤ç使ç¨æ ¼å¼å§ï¼
adb [-d|-e|-s ]
adbæ¯å¿ é¡»çï¼æ¥ä¸æ¥æ¹æ¬å·[]éé¢çå 容ä¸æ¯å¿ é¡»çï¼æåææ¯æ们éè¦æ§è¡çå½ä»¤æä½ï¼ä¾å¦ adb -s emulator- install UCBrowser.apk (è¿æ¯å®è£ UCæµè§å¨çææ)
ä¸é¢å ä»ç»ä¸ï¼åé¢å 个åæ°çå«ä¹å§ï¼
ãã-d: 让å¯ä¸è¿æ¥å°è¯¥PC端ççå®å®å设å¤æ§è¡å½ä»¤ï¼å¦æåç°USBä¸è¿æ¥æå¤é¨è®¾å¤ï¼å°ä¼æ¥é
ãã-e: 让å¯ä¸è¿æ¥å°è¯¥PC端ç模æå¨æ§è¡å½ä»¤ï¼å¦æåç°å¼å¯äºå¤ä¸ªæ¨¡æå¨ï¼å°ä¼æ¥é
ãã-sï¼éè¿è®¾å¤çåºåå·è¿è¡æå®è®¾å¤æ§è¡å½ä»¤
å¦æ设å¤åªè¿æ¥æä¸ä¸ªè®¾å¤æè ä¸ä¸ªæ¨¡æå¨çæ¶åï¼å¯ä»¥ä¸ç¨å£°æè¿ä¸ä¸ªåæ°ï¼adbé»è®¤ä¼è®©è¿é¨å¯ä¸è¿æ¥å°ç设å¤è¿è¡å½ä»¤æ§è¡ã
okï¼ä¸é¢å¼å§è®²è§£å¸¸ç¨çå½ä»¤å§ï¼
1) æ¥çå½åPC端è¿æ¥æå¤å°è®¾å¤ï¼
adb devices
ç»ç«¯ä¸çæ§è¡ç»æ为ï¼
ä»ä¸å¾ä¸ï¼æ们çå°äºè®¾å¤æç两ç§ç¶æï¼å ¶å®æ§è¡è¯¥å½ä»¤ï¼å¯è½è¿åçç¶ææä¸ç§ï¼
ããI. device 设å¤å·²ç»æåè¿æ¥å°äºadb-server
ã II. offline 设å¤å¹¶æ²¡æè¿æ¥å°adbæè 没æååº
ã III. no device 并没æ设å¤/模æå¨è¿æ¥
2) æ¥çadbççæ¬
adbãversion
ç»ç«¯ä¸çæ§è¡ç»æ为ï¼
3) ç»è®¾å¤è¿è¡è½¯ä»¶çå®è£
adb -s install
eg:
adb -s eba9 install D://Test.apk
ç»ç«¯ä¸çæ§è¡ç»æ为:
é¤äºä¸é¢è¿ç§æ¹æ³ï¼æ们è¿æå¦å¤ä¸ä¸ªå½ä»¤ï¼
adb -s shell pm install [options]
å ¶ä¸[options]ä¸æ常ç¨çé项æ¯-rï¼ä»£è¡¨çæ¬æ¬¡å®è£ æ¯éæ°å®è£ ï¼ä¼ä¿çç¨æ·æ°æ®ã
4) å¸è½½è®¾å¤ä¸å·²ç»å®è£ ç软件
adb -s uninstall
eg:
adb -s eba9 uninstall cn.uc.test
ç»ç«¯ä¸çæ§è¡ç»æ为:
é¤äºä¸é¢è¿ç§æ¹æ³ï¼æ们è¿æå¦å¤ä¸ä¸ªå½ä»¤ï¼
adb -s uninstall [options]
è¿éçoptionsæ¯-kï¼å ä¸è¯¥åæ°è¡¨æå¸è½½è½¯ä»¶åä¾æ§ä¿çç¨æ·æ°æ®
5) å°æ°æ®ä»è®¾å¤å¤å¶å°PCä¸
adb -s pull
eg:
adb -s eba9 pull /sdcard/stericson-ls D://
ç»ç«¯çæ§è¡ç»æï¼
å¨Dï¼//çä¸æ们ä¹å¯ä»¥åç°stericson-lsæ件
6) 讲æ°æ®ä»PC端å¤å¶å°è®¾å¤ä¸
adb -s push
eg:
adb -s eba9 push d://stericson-ls /sdcard/
ç»ç«¯çæ§è¡ç»æï¼
7) è·åè¿æ¥å°çææºçåºåå·
adb get-serialno
ç»ç«¯çæ§è¡ç»æï¼
8)è·å设å¤çè¿æ¥ç¶æ
adb -s get-state
eg:
adb -s eba9 get-stat
ç»ç«¯çæ§è¡ç»æï¼
9) çå¾ è®¾å¤è¿æ¥æå
adb wait-for-device
该å½ä»¤å°ä¼é»å¡ä¸ç´å°é»è®¤è¿æ¥çé£é¨æºå¨ç¶æå为deviceï¼ä¹å°±æ¯è¿æ¥æåã
) adb-server çå¼å¯ä¸å ³é
adb kill-server
adb start-server
ç»ç«¯çæ§è¡ç»æï¼
ææ¶åæ们å¼å¯serverä¼å¤±è´¥ï¼è¿æ¯å 为æä»¬è£ äºçææºå©æï¼è±è±èæè å ¶ä»è½¯ä»¶èªå¸¦æèªå·±çadbï¼å¯¼è´ç«¯å£å²çªå¼å¯å¤±è´¥ã主è¦å ³æé£äºè½¯ä»¶å¹¶ä¸ææé£äºè½¯ä»¶èªå¸¦çadbè¿ç¨éæ¥å³å¯ã
1.2 ææºæ§è¡Shellå½ä»¤
ä¼æå¨ç¥ï¼Androidçå æ ¸æ¬èº«å°±æ¯Linuxï¼æ以Androidæ¬èº«ä¹æ¯æLinuxå½ä»¤ï¼ä½æ¯å 为æ¯ææºç³»ç»ï¼æ以è¿è¡äºä¸å®çå åï¼é¨åå½ä»¤ä¸æ¯æï¼èä¸æ¯æçé¨åï¼æ们å¯ä»¥éè¿å®è£ busyboxè¿ä¸ªè½¯ä»¶è¿è¡
å¡«è¡¥ã
ä¸é¢æ们讲解ä¸å¦ä½å¨ææºä¸æ§è¡Shellå½ä»¤ï¼
1) æ¯æ¬¡é½å ä¸adb shellæ¥è¿è¡å½ä»¤çåéä¸æ§è¡
adb shell
2) å éè¿adb shellè¿å ¥ææºShellæ§è¡ç¶æï¼ç¶åç´æ¥è¾å ¥Linuxå½ä»¤ï¼å¦å¾ï¼
ãã
1.3 Activity Manager 常ç¨å½ä»¤ä¸åæ°è¯´æ
ä¸è¬æ åµä¸ï¼æ们æ常ç¨å®æ¥è¿è¡appçå¼å¯ï¼å¹¶ä¸ä¼ éä¸å®çåæ°è¿å»,æ¯å¦ï¼
adb shell am start -a android.intent.action.VIEW -n cn.uc.test/.MainActivity -d
å¨è¿éå°±ä¸å太è¿è¯¦ç»åéå¤ç说æäº
1.4 Package Manager 常ç¨å½ä»¤ä¸åæ°è¯´æ
1) 使ä¸ä¸ªapkå¤äºç¦ç¨ç¶æï¼ç¸å½äºå¸è½½äºï¼
disable
å ¶ä¸ PACKAGE_OR_COMPONENTçæ ¼å¼æ¯ package/classï¼ å¦ com.UCMobile/.main.UCMobile
eg:
adb shell su disable com.UCMobile/.main.UCMobile
ç»ç«¯æ§è¡ç»æï¼
åæ¶æ们å¨ææºä¸åç°ï¼UCæµè§å¨çå¾æ ä¸è§äº
2) 让ä¸ä¸ªapkä»ç¦ç¨ç¶ææ¢å¤è¿æ¥
enable
å ¶ä¸ PACKAGE_OR_COMPONENTçæ ¼å¼æ¯ package/classï¼ å¦ com.UCMobile/.main.UCMobile
eg:
adb shell su enable com.UCMobile/.main.UCMobile
ç»ç«¯æ§è¡ç»æï¼
åæ¶æ们ä»ææºä¸åç°ï¼UCæµè§å¨çå¾æ ååæ¥å¦ã
3) æ¥çä¸ä¸ªapkæå¨çè·¯å¾
pm path
eg:
adb shell pm path com.UCMobile
ç»ç«¯æ§è¡ç»æï¼
4) æ¥çææºä¸è£ çææçå
pm list packages
å次ä¸åè¿å¤ç说æ
1.5å ¶ä»å¸¸ç¨çadbå½ä»¤
1) å±å¹å½å
ä¾å¦ï¼å±å¹å¼å§å½å并ä¸å¨åå°/sdcardä¸ï¼åæ¶åå为demo.mp4
adb shell screenrecord /sdcard/demo.mp4
2) å ³é设å¤è¯·æ±ï¼å¼å¯è®¾å¤
adb shell stop
adb shell start
3)设å¤å ³æºä»¥åéå¯
adb reboot
adb shutdown
make 和 make install的区别是是什么?
作用不同,具体如下:make
这条命令用来编译,大多数的源代码包都经过这一步进行编译。(当然有些perl或Python编写的软件需要调用perl或python来进行编译)。从Makefile中读取指令,然后编译。asmx源码下载
make install
这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要有 root 权限(因为要向系统写入文件)
编译(compilation , compile) 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的糊涂鳄游戏源码工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,龙门大魔神源码而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的andlua王者cpp源码区别,仅与程序的应用有关。
参考资料:
百度百科--编译Linux 下的 make, configure 究竟有多难用?
听过身边很多个程序员朋友说Linux这个系统慢慢慢慢地就变得不好用了。1、configure这一步一般用来生成 Makefile,为下一步的编译做准备。
你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是小说有声app源码将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。
2、make这一步就是编译本身,大多数的源代码包都经过这一步进行编译。
如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
3、make insatll这条命令是安装。
当然有些软件需要先运行 make check 或 make test 来进行一些测试,这一步一般需要你有 root 权限(因为要向系统写入文件)。
所以,在Linux下安装一个应用程序时,一般需要先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件。使用上述三个自动工具,就可以生成configure脚本。运行configure脚本,就可以生成Makefile文件,然后就可以运行make、make install和make clean。操作的复杂,可见一斑。