顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2013年9月24日 星期二

[GitHub相關] 使用git push 出現 "you can't push to git use https...." 的解決方式

Git hub 前面基本設定之後,最後要git push xxxxxxxx  master 時,

出現以下:
fatal: remote error: 
You can't push to git://github.com/my_user_name/my_repo.git
Use git@github.com:my_user_name/my_repo.git

原因是因為 git 是 Read-Only , 叫你使用https的方式存取,

故你若要使用 git 來做存取 , 你必須要打通SSH key 來加入到你的GitHub帳號,

照著以下簡單步驟做就可以使用git push 嚕
https://help.github.com/articles/generating-ssh-keys








當然若你要使用https也是可以(就不用SSH key了),但是可能還是會有問題,會出現

"error: The requested URL returned error: 403 while accessing https://github.com/JackABK/rtenv.git/info/refs"

請參照這裡解決:
http://askubuntu.com/questions/186847/error-gnutls-handshake-falied

不過還是介意自己產生ㄧ組SSH key 加入到自己Git Hub帳號吧!!













2013年9月10日 星期二

gcc/g++ 常用參數

因為常用到gcc/g++ 所以將常用到的參數列出:



gcc [option] filename

※ 選項

-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ansi c標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
-O2 : 做最佳化

-M : 生成文件所關聯的信息,包含目標文件所依賴的所有源代碼, ex: gcc -M hello.c
-MM: 與-Mㄧ樣,只是他將忽略由#include<file>所造成的依賴關係
-MD: 與-Mㄧ樣,但是輸出將導入到.d的文件裡面


2013年8月29日 星期四

find 、grep 、 xargs 搭配應用:



在Linux中,常常在Debug時要找字串,但是他可能又分在好多子目錄當中,而你也不知道到底在哪裡,這時候該怎辦??

------------------------------------------------------------------------------

假設我要在根目錄的所有子目錄下搜尋所有.c檔裡含有字串

” YinChenWang“ 的需求,下面有兩種方法:



1. $ sudo find / –name “*.c” -exec grep “YinChenWang” {} \;

2. $ sudo find / –name “*.c” | xargs grep “YinChenWamg”



說明:


  • 法1:
         他會根據 “/ “ 這個根目錄(包括所有子目錄)去尋找所有附檔名為.c

         的檔案,接著後面的 –exec 與 最後面的 \; 是一體的,裡面包的就是

         grep “YinChenWang” {} ,而{}裡面就是存放前面find所找到的所有.c檔,

         這樣大概懂意思了嗎? 也就是說-exec \; 這中間包的東西可以很多

         變化,例如你也可以使用rm或cp等等的搭配前面的find做不同應用,

         想看更詳細請參考

         鳥哥的Liunx 私房菜: http://linux.vbird.org/linux_basic/0220filemanager.php#find

  • 法2:
        其實效果與法1類似,其中用到了”xargs” ,他可以將前面find後的輸出結果,

        來當做你xargs後面所接的參數,以此例子來看,

        find後輸出的結果將會透過xargs來提供給grep “YinChenWang”使用。

        xargs的詳細說明請參考:

        xargs 應用介紹:   http://blog.yam.com/ddy1280/article/13941218

2013年8月28日 星期三

VIM常用指令

由於VIM網路上有相當多的資源,當然直接去鳥哥找是最快,但是這裡紀錄幾個我最常使用的功能,日後會持續的增加:


2013年8月26日 星期一

Git學習

首先辦GitHub帳號:https://github.com/
參考建立Git詳細網站(有windows、Linux):http://note.tc.edu.tw/818.html

Demo Figure


Git基本指令:
     Git初始設定
     #Git config --global user.name “xx”
     #Git config --global user.email “bbjh5@hotmail.com

     #Git config --list 列出目前設定值

     建立一個新的Repository
     #Git init
     出現Initialized empty Git repository in /home/xxx/.git

     Clone(複製)別人的Repository
     Ex:git clone git://github.com/beckus/stm32_p103_demo.git

     改變最後一次的commit
     #Git commit --amend

     Stage的檔案給Unstage
     #Git reset HEAD file

     把修改過的檔案回到未修改狀態
     #Git check out -- file
     檢查狀態
     #Git status

     Git Branch
     建立一個新的Branch
     Ex: git branch experimental
     進入新的Brach
     #Git checkout experimental
     查詢有哪些Branch
     #Git branch
     切換Master branch
     #Git checkout master
     如有衝突,使用diff觀看並修改
     #git merge experimental
     Gitk 顯示resulting history圖表
     branch會做確認
     #git branch –d experimental
     branch(強制)
     #git branch –D experimental

     預設Branchmaster;預設Remoteorigin
     Ex: git pull origin = git fetch origin + git merge origin/master
     拉下來後的merge

     Git push origin master  :master pushorigin


25個線上練習Git的連結:http://try.github.io//levels/1/challenges/1


參考連結:
[1]寫給大家的Git教學(線上PPT)http://www.slideshare.net/littlebtc/git-5528339
[2]Git初學筆記-指令操作教學http://blog.longwin.com.tw/2009/05/git-learn-initial-command-2009/
[3]初次設定Githttp://git-scm.com/book/zh-tw/%E9%96%8B%E5%A7%8B-%E5%88%9D%E6%AC%A1%E8%A8%AD%E5%AE%9AGit
[4]Git的基本使用http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/

2013年8月20日 星期二

GDB 入門筆記 - 近端偵錯(一)

<什麼是GDB?>

GDB 是一個Debug工具,只要是使用GNU之編譯器之程式都可以利用它來debug

使用的是文字介面,目前也開始發展圖形界面

<GDB有什麼特色?>

1.可以針對程式的執行做追蹤,同時也能在追蹤時對程式內之變數做修改


2.GDB不只能對在電腦上之程式做偵錯,也可以對嵌入式系統作遠端偵錯(Remote)

                              File:Cc25-GDB-Remote-Debugging.png


<GDB學習筆記>

近端偵錯:

1.安裝gdb

  • 先確定電腦上是否已經有安裝gdb:$whereis gdb
  • 如果沒有安裝:$sudo apt-get install gdb
2.開始使用gdb
  • 因此先寫一之測試程式testGDB.c
  • 使用gcc將它作編譯  $gcc -g -o testGDB.c testGDB
  • 對編譯好的執行檔做debug  $gdb ./testGDB

3.gdb常用指令

  • 輸入run (或是簡寫r) 可以在gdb上執行該支程式


  • 如果要在程式裡面加入中斷點,輸入break(或簡寫b)例如要進入main之前就讓程式停下來
    • (gdb)b main






  • 或是指定某一行停下來,例如在第五行停下來
    • (gdb)b 5
  • 設定完中斷點輸入run(或簡寫r)可開始執行,執行到中斷點停止。
    • (gdb)r
  • 如果要繼續執行下一行可輸入next(或簡寫n)
    • (gdb)n
  • 輸入info b 可查詢現在有的中斷點
    • (gdb)info b
  • 輸入c則執行到下一個中斷點為止
    • (gdb)c
  • 另外,如果要看執行到的當前那一行時,某個變數值可利用p的指令
    • (gdb)p num

<GDB基本指令>
command
about
run [args]
開始執行
start [args]
開始執行(並自動在main() break)
list [LINENUM]
    [FUNCTION]
    [FILE:LINENUM]
列出程式碼(重複list指令可接著列出下面十行)
print [EXP]
顯示expression的值
break[LINENUM]
     [FUCTION]
設一個break point
next [TIMES]
執行到下一個statement(不會進入function)
step [TIMES]
執行到下一個statement(會進入function)
until [LINENUM]
執行到某行
continue[TIMES]
執行到被中斷為止
finish
執行到結束此function(還可用return直接回傳並結束)
info [SUBCOMMAND]
顯示一些資訊(ex:breakpoints: info break)
help [SUBCOMMAND]
說明(ex: help list)



入門教學影片:



reference:
1.http://opencsl.openfoundry.org/Lab05_debugger.rst.html
2.http://blog.yslin.tw/2012/08/gdb.html


2013年8月19日 星期一

[Linux] Grep 指令介紹

grep (global search regular expression(RE) and print out the line)

我們經常在debug時,很常需要用到這個指令,他是用來做字串比對用
可以列出你所限定的關鍵字,無論是一行或是多行,非常好用   一定要學會!!

Usage : grep  [option ]  filename
(以下列出常用的,更多資訊可在Linux終端機輸入 grep --help 查詢)
option
-a : binary 檔案用 text 檔案的方式搜尋資料
-c : 可計算找到目標的次數(count)
-i : 忽略大小寫搜尋
-n : 輸出行號,在每行的前面加上行號
-V :顯示出來grep的版本跟相關的資訊

Example 1 :
# lsusb | grep ‘Linux’

Example 2:
#dmesg | grep  ‘RPC’

Example 3:
# grep -i  'printf'  capture_camera_and_image_process.c


結語: grep日後無論是debug或者是文件管理一定是常常用到的,學起來好用!!


        Refer to :







[公告]


Dear all


大家把一些技術上的文章貼上來分享吧


分類:Assistive Technology,OpenCV,Linux,Embedded System,Da Vinci (ARM+DSP),Android,Image Processing