目錄結構如下:
root@ubuntu:/home/aaa/maketest# ls -l
total 12
-rw-r--r-- 1 root root 127 sep 24 19:09 main.cpp
-rw-r--r-- 1 root root 99 sep 24 19:18 test.cpp
-rw-r--r-- 1 root root 28 sep 24 19:11 test.h
將test.cpp編譯為目標檔案,將會生成test.o檔案。
g++ -c test.cpp
將 test.o檔案打包為靜態庫檔案。
ar -cr libtest.a test.o
生成可執行檔案。
g++ -o main main.cpp -l. -ltest
注意:
生成和使用庫檔案時檔名必須符合規範,靜態庫檔案的命令為:lib+庫名稱+.a,使用時-l選項後面只需要跟庫名即可,不需要字首lib和字尾.a,否則會報錯。
linux下編譯動態庫並呼叫
目錄結構如下 root ubuntu home aaa maketest ls l total 12 rw r r 1 root root 127 sep 24 19 09 main.cpp rw r r 1 root root 99 sep 24 19 18 test.cpp rw r r 1 r...
VC 呼叫並編譯靜態庫
新建乙個win32 靜態庫 c或cpp include stdafx.h include lib.h int pascal far lib add int n h標頭檔案 ifndef lib define lib if msc ver 1000 pragma once endif pull in ...
Linux下靜態庫編譯
linux下動態庫檔案的擴充套件名為 so shared object 按照約定,所有動態庫檔名的形式是libname.so 可能在名字中加入版本號 這樣,執行緒函式庫被稱作libthread.so。靜態庫的檔名形式是libname.a。共享archive的檔名形式是libname.sa。共享arc...