編譯和鏈接
- fred.c
#include <stdio.h>
void fred(int arg)
{
printf("fred: you passed %d\n", arg);
}
- bill.c
#include <stdio.h>
void bill(char *arg)
{
printf("bill: you passed %s\n", arg);
}
- 編寫頭文件"lib.h"
void bill(char *);
void fred(int)
- 主文件 "program.c"
#include "lib.h"
int main()
{
fred(10);
bill("I love you!");
return 0;
}
- 編譯和鏈接程序
cc -c bill.c fred.c ->生產(chǎn)bill.o 和 fred.o
cc -c program.c ->生成program.o
cc -o program program.o bill.o fred.o -> 鏈接 生成program可執(zhí)行程序
./program ->執(zhí)行程序
創(chuàng)建和使用庫文件
- 創(chuàng)建一個(gè)庫文件
$ ar crv livfoo.a bill.o fred.o
- 庫文件的使用
$ cc -o program program.o livfoo.a
- 使用nm查看函數(shù)
nm livfoo.a
動(dòng)態(tài)庫文件
.so就是動(dòng)態(tài)庫文件,文件相當(dāng)于windows的DLL
- 查看程序所需要的共享庫
ldd program