linux下編譯靜態庫並呼叫

2021-10-09 18:24:35 字數 577 閱讀 7507

目錄結構如下:

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...