目錄
靜態(tài)庫(kù)
mkdir stack && cd stack
vim ble5.h
void hello();
vim ble5.c
#include <stdio.h>
#ifdef NOT_USE_DEFAULT
void ble5()
{
printf("ble5 not default");
}
#else
void ble5()
{
printf("ble5 default");
}
#endif
gcc -c ble5.c -o ble5.o
ar -rcs libble5.a ble5.o
編譯鏈接
# 和stack平級(jí)目錄
mkdir app && cd app
vim main.c
#include "ble5.h"
int main(void)
{
ble5();
return 0;
}
gcc main.c -o main
# main.c:1:10: fatal error: 'ble5.h' file not found
gcc main.c -I../stack -o main
# main.c:(.text+0xa): undefined reference to `ble5'
# collect2: error: ld returned 1 exit status
gcc main.c -I../stack -static -L../stack -lble5 -o main
./main
# ble5 default
預(yù)編譯
cd ../stack
gcc -DNOT_USE_DEFAULT -c ble5.c -o ble5.o
ar -rcs libble5.a ble5.o
cd ../app
gcc main.c -I../stack -static -L../stack -lble5 -o main
# ble5 not default
參考