so檔案是是elf格式檔案,共享庫(動態庫),類似於dll。節約資源,加快速度,**公升級簡化。
例子中測試檔案的生成:
gcc -g ts.c -o ts -l. –ls //
一下是例子:
先寫乙個c檔案:s.c
1. #include
2.int count;
3.void
out_msg
(const
char
*m)4.
6.}
測試:
寫乙個標頭檔案:s.h
1. #ifndef _my_so_header_
2. #define _my_so_header_
3.void
out_msg
(const
char
*m);
4. #endif
測試檔案:
1. #include
2. #include "s.h"
3.int
main
(int argc,
char
** ar**)
4.
gcc -g ts.c -o ts -l. –ls //編譯鏈結測試檔案,得到輸出檔案ts
執行./ts~
C linux動態庫so匯出及使用
存在不相容的函式 控制linux動態庫的匯出函式 使用linux動態庫 靜態載入 其他問題 第一次嘗試匯出linux動態庫,包裝log4cpp,遇到的問題做個記錄。在官網上下下來包過後,官網的安裝說明不全 stdcall cdecl if defined msc ver defined win32 ...
so檔案動態替換方法及Linux動態庫的用法
在替換so檔案時,如果在不停程式的情況下,直接用 cp new.so old.so 的方式替換程式使用的動態庫檔案會導致正在執行中的程式崩潰。解決的辦法是採用 rm cp 或 mv cp 來替代直接 cp 的操作方法。linux系統的動態庫有兩種使用方法 執行時動態鏈結庫,動態載入庫並在程式控制之下...
靜態庫 a和動態庫 so生成及呼叫
gcc編譯器工具一般位於 usr bin或者 usr local bin目錄,但它會從其它位置執行各種編譯器支援的應用程式,這個位置可能是 usr lib gcc lib 目錄,gnu c c 編譯器的各個工具和gnu專用標頭檔案都儲存在這裡。標頭檔案,一般位於 usr include,包含標頭檔案...