[c/c++] linux c生成靜態庫&共享庫 - bluefrog - 博客園
[c/c++] linux c生成靜態庫&共享庫
靜態庫
libdemo.h
1 // libdemo.h 2 #ifndef _LIBDEMO_H 3 #define _LIBDEMO_H 4 5 void demo_call( char * msg); 6 7 #endiflibdemo.c
1 // libdemo.c 2 #include " libdemo.h " 3 #include <stdio.h> 4 5 void demo_call( char * msg) 6 { 7 printf( " %s\n " ,msg); 8 }編譯庫文件
# 編輯成目標文件 gcc -c libdemo.c - o libdemo.o # 創建存檔文件 ar rcs libdemo.a libdemo.o?
測試文件testdemo.c
1 #include " libdemo.h " 2 3 int main() 4 { 5 demo_call( " hello " ); 6 return 0 ; 7 }gcc testdemo.c -o testdemo -static -L. -ldemo ./testdemo
?
共享庫
gcc -fPIC -g -c libdemo.c - o libdemo.o gcc -g -shared -WL,-soname,libdemo.so -o libdemo.so. 1.0 . 0 libdemo.o - lc ln -s libdemo.so. 1.0 . 0 libdemo.so gcc testdemo.c -o -L. - ldemo # 為了能讓. / testdemo執行需要將.so 加入到庫里 export LD_LIBRARY_PATH =$( pwd ) . /testdemo?
think in coding
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
