Linux開發常用工具

來源:互聯網
上載者:User

 最近一直忙著學Linux下的編程,書籍主要以<<Unix環境進階編程>>為主,工具主要使用cc,gcc編譯器,gdb調試器,vim編輯器,因為不熟悉Linux環境,所以沒有使用Linux作業系統,僅下載了安裝了Cygwin,感覺入門不難,但是那些瑣碎的技巧還是要記一些的,把經常要用的羅列出來,以後好尋找.隨著學習的深入,還會逐步新增內容的.

1產生目標檔案

gcc -c sourcefile1.c sourcefile2.c或cc -c sourcefile1.c sourcefile2.c

2產生靜態連結庫(需要使用目標檔案sourcefile1.o sourcefile2.o)

ar -rc libname.a sourcefile1.o sourcefile2.o

3產生動態連結程式庫

gcc -fpic -shared -o libname.so sourcefile1.c sourcefile2.c

-fpic 使輸出的對象模組是按照可重定位地址方式產生的。

-shared指定把對應的源檔案產生對應的動態連結程式庫檔案libname.so檔案。

4使用靜態庫

分2步:1)編譯產生目標檔案 gcc -c -lDIRECTORY/libname main.c

          2)產生可執行檔 gcc -o main -lDIRECTORY/libname main.o libname.a

DIRECTORY為庫所在的路徑,建議使用相對路徑

5使用動態庫

動態庫分為隱式調用和顯式調用,隱式調用和使用靜態庫差不多,只要將第2步的libname.a改成libname.so就可以了.顯式調用需要結合程式給出執行個體,暫不討論.

 6偵錯工具

編譯時間需要使用-g選項來編譯器,例如:gcc -g sourcefile.c,預設產生a.out,然後輸入命令gdb a就可以調試了.

7makefile的編寫

最簡單的makefile可以用下面這個例子來表示:

Projectname:

    cc -o programname sourcefile.c

clean:

    rm sourcefile.o programname.out

以makefile為檔案名稱儲存後,敲make命令就可以了,再敲make clean就將sourcefile.o和programname.out刪除了.

8壓縮和解壓檔案

想要學習編程,看別人寫的代碼是必要的,所以就要從網上下載一些Linux/Unix的原始碼,這是肯定會用到的就是解壓工具了,所以tar還是很重要的,解壓一個包不是很難,基本上使用以下的例子來闡述:

tar -xvf stevens.tcpipiv1.tar.Z

9顯示檔案內容

cat命令是我常用的,後面跟檔案名稱就好了.如果一憑顯示不完,可以用管道將它輸出到more上面然後一點點往下看,就像下面這樣:cat filename | more,從這裡我才感覺到Linux真的功能強大,但他的強大在於使用的人...至少我還不太會使用,呵呵.

10查看程式的大小

使用size命令可以查看程式的text, data, bss, dec及hex的大小.

11在檔案中尋找字串

在編輯源檔案時,我們要用到更多的技巧,如果原始碼行數很多,而且檔案的數目也很多,我們不可能記住每個函數在哪個檔案中哪個位置定義,所以要用到以下的工具來進行定位,列舉一例:

grep -n main *.c

這個可以尋找出main函數的所在位置,當然可能會存在多個函數,這就需要我們根據輸出的資訊在進一步確認了.另外,選項有以下幾個,其具體含義如下所示.

-n 同時列出改詞出現在文中第幾行

-c 計算該詞出現的次數

-i 比較時不計較大小寫不同

 12編輯器VIM的使用

這個說起來光簡單用法恐怕就可以用一整篇文章了,常用的命令大致如下:

":1"到第一行,冒號後面跟數字,數字是幾就到第幾行

":set cindent",設定縮排格式為C語言的縮排格式

":set number",顯示行號

"#"向前搜尋

"*"向後搜尋

"ndd"刪除當前游標位置的n行

"nyy"粘貼,n為粘貼的行數

"CTRL-R" 恢複

"/str/"搜尋字串str,再按"n"跳到下一個

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.