在Windows中靜態(tài)庫的擴展名為 .lib 動態(tài)庫的擴展名為 .dll
在Linux和Unix下靜態(tài)庫的擴展名為 .a 動態(tài)庫的擴展名為 .so
Linux平臺下
l 在Linux下編寫普通可執(zhí)行文件的命令:
gcc –o 目標文件名 源文件名(列表)
如果工程包含多個.c和.h那么在源文件名列表中只列出所有的 .c文件
例:工程文件夾里有 des.c hash.c main.c des.h hash .h要將他們編譯成EncApp可執(zhí)行文件,則使用下面的命令
gcc –o EncApp des.c hash.c main.c
l 在Linux下編寫調(diào)用動態(tài)庫或靜態(tài)庫的可執(zhí)行文件的命令:
gcc –o 目標文件名 源文件名(列表)庫文件名(列表)
如果工程包含多個.c和.h那么在源文件名列表中只列出所有的 .c文件和庫文件
例:工程文件夾里有 main.c enc.so要將他們編譯成EncApp可執(zhí)行文件,則使用下面的命令
gcc –o EncAp main.c enc.so
注意:.so文件必須事先復(fù)制到 /usr/lib目錄下
l 生成靜態(tài)庫需要的命令
生成靜態(tài)庫 .a 必須先生成 目標文件 .o 然后再生成靜態(tài)庫 .a
生成目標文件的命令格式為:
gcc –c –o 目標文件名.o 源文件名.c (列表)
生成靜態(tài)庫的命令格式為:
ar –r 靜態(tài)庫文件名.a 目標文件名.o
l 生成動態(tài)庫需要的命令
生成動態(tài)庫 .so 必須先生成 目標文件 .o 然后再生成動態(tài)庫 .so
生成目標文件的命令格式為:
gcc –fpic –c –o 目標文件名.o 源文件名.c (列表)
生成動態(tài)庫的命令格式為:
gcc –shared –o 動態(tài)庫文件名.so 目標文件名.o
l 備注:在編譯可執(zhí)行文件,各種目標文件和庫文件的時候,用到的.h文件必須在編譯文件夾下,如果沒有這些頭文件,編譯器將報錯。
Unix平臺下
l 除了生成so文件的時候略有不同外,其他都相同,只是將 gcc 改成 cc
l 生成動態(tài)庫的命令格式為:
cc –dy –G –o 動態(tài)庫文件名.so 目標文件名.o
聯(lián)系客服