Linux C 程式設計(vim)

2021-08-26 17:29:55 字數 1685 閱讀 8093

一,編譯(compile)

含義:用編譯器(compile)將源**生成二進位制目標檔案。在window下為.obj。在linux下為.o檔案。

要求:編譯器要求,語法正確。編譯器只檢測程式語法和函式、變數是否被宣告,函式並不許要被定義。

編譯語法:g++ -c file.cpp 其中-c 為compile生成 file.o的目標檔案

二,鏈結(link)

含義:將所有需要到函式所在的檔案愛你鏈結在一起合成為可執行檔案。

語法:g++ file.o -o file.exe 其中-o 指生成可執行檔案(output)。預設為a.out

【合併】g++ file.cpp -o file.exe

三,庫(library)

含義:對於乙個原始檔很多的大專案,為了避免重複編譯,也為了方便編譯器鏈結,通常會把一些常用到的目標檔案打包(archive),於是就成為了傳說中的庫檔案(library)。在windows下這種包叫「庫檔案」(library file),也就是 .lib 檔案,在unix下,是archive file,也就是 .a 檔案

語法:1)ar -- create, modify, and extract from archives.

@usage: ar cr lib****.a file1.o file2.o // **** 為自定義的庫檔名。

標籤 c (create):如果庫不存在,則建立庫;

標籤 r (replace):如果庫中已存在要新增的物件檔案,則舊的物件檔案將被替換。

實際上 ar 只是乙個打包工具,是archive(打包)的首字母。它將一系列的目標檔案首位連線在一起,並內嵌乙個索引表,使得編譯器能夠方便地找到所需要的函式。一般來說,由於函式索引表的存在,對庫的鏈結要比對一般的物件檔案的鏈結更快。如果 ar 未能完成此項索引表工作,還可以手動用以下的 ranlib 命令建立索引表。

2) ranlib -- generate index to archive.

@usage: ranlib lib****.a

3) nm -- list symbols from object files.

nm可以用來顯示 ranlib 所構建的索引表。你將會看到所有庫里的函式名(除了模板函式template function)。

四, 在編譯時鏈結庫

建立了自己的庫,以後要用到相關函式的時候,只需在**中宣告所要用的函式(必須和庫中定義得相同)。在鏈結的時候,需要給出庫的名稱和位置:

g++ file1.o file2.o -o program.exe -l**** -l****

-l 後緊跟庫檔案所在的目錄位址,-l 後緊跟庫名。

編譯器在鏈結的時候會在所指定的目錄位址下尋找名為 lib****.a 的庫檔案。

Linux C程式設計 1 vim及gcc命令

1.輸入以下命令可以啟動vi 1 vi 不指定檔名,在儲存檔案時需要指定檔名。2 vi 檔名 該檔案既可以是已存在的,也可以是新建的。3 vi n 檔名 進入vi,游標停在第n行開始處。4 vi 檔名 進入vi,游標停在檔案最後一行開始處。4 vi 字串 檔名 進入vi,游標停在第乙個字串處所在行。...

linux c 程式設計

linux下為了安全性不能雙擊執行控制台程式,只有gui程式才能雙擊執行.linux下檔案的型別是不依賴於其字尾名的,但一般來講 o,是目標檔案,相當於windows中的.obj檔案 so 為共享庫,是shared object,用於動態連線的,和dll差不多 a為靜態庫,是好多個.o合在一起,用於...

Linux C程式設計

套接字 sockets 即為網路程序id,是由執行這個程序的計算機的ip位址和這個程序使用的埠 port 組成.可以只用 netstat all 檢視當前系統中網路應用程序的套接字和埠.可以使用 輸出重定向到檔案.linux在標頭檔案中定義了通用的套接字結構型別,可供不同協議呼叫 struct so...