庫是預編譯的目标檔案(.o)的集合,它們可以被連結程序式。
标準系統庫可在目錄/usr/lib與/lib中找到。比如,在類Unix系統中C語言的數序庫一般存儲為檔案/usr/lib/libm.a。該庫中函數的原型聲明在頭檔案/usr/include/math.h中。
C标準庫本身存儲為/usr/lib/libc.a,它包含ANS1/ISO标準指定的函數,比如printf。對每一個C程式來說,libc.a都預設被連結。
準備一個簡單helloworld.cpp
我們可以通過下面兩個指令将這兩個函數編譯成靜态庫。
編譯
1.gcc -c helloworld.cpp -o mylib.o //産生目标檔案
2.ar rcv helloworld.a mylib.o //将目标檔案打包成靜态庫
使用
g++ -o helloworld helloworld.cpp -L. -lmylib
或者g++ -o main helloworld.cpp helloworld .a
參考原文
https://www.jianshu.com/p/dd5540f89a23 |
---|
參考Linux-(C/C++)生成并使用靜态庫/動态庫
https://blog.csdn.net/qq_34199383/article/details/80308782