1. 程式人生 > >g++ 編譯連結C++程式碼, 生成與使用靜態庫和動態庫

g++ 編譯連結C++程式碼, 生成與使用靜態庫和動態庫

例如我有A.cpp、A.h、main.cpp 三個檔案

編譯連結C++程式碼:

第一步:g++ -c A.cpp main.cpp

這樣就可以編譯A.cpp和main.cpp的程式碼生成A.o和main.o檔案【因為A.cpp包含了A.h的標頭檔案,所以一般編譯時只選擇cpp檔案即可】。

第二步:g++ -o test A.o main.o

這樣就可以把編譯好的.o檔案連結成可執行檔案。-o 後面的引數是編譯好的可執行檔案的名字。當然,也可以跳過第一步,直接【g++ -o test A.cpp main.cpp】一次過編譯並連結生成可執行檔案。

第三步:./test

這樣就可以執行可執行檔案,執行A.cpp和main.cpp 的程式碼。


生成並使用靜態庫。

第一步:g++ -c A.cpp

生成.o檔案

第二步:ar -cr libA.a A.o

生成靜態庫檔案,跟在-cr後面的引數就是庫檔案的名字

第三步:g++ -o test main.cpp libA.a

使用main.cpp 和靜態庫生成可執行檔案

第四步:./test

執行可執行檔案


生成並使用動態庫。

第一步:g++ -c A.cpp

生成.o檔案

第二步:g++ -shared -fPIC -o libA.so A.o 

生成動態庫檔案

第三步:g++ -o test main.cpp libA.so

使用main.cpp 和動態庫生成可執行檔案

第四步:./test

執行可執行檔案

也可直接編譯庫檔案,省去中間檔案

靜態庫:ar -cr libA.a A.cpp

動態庫:g++ -shared -fPIC -o libA.so A.cpp