在Linux中,使用libtool創建庫的過程分為幾個步驟
mylib
的庫,其中包含兩個源文件file1.c
和file2.c
。首先,創建以下目錄結構:mylib/
├── config.h.in
├── Makefile.am
├── src/
│ ├── file1.c
│ └── file2.c
└── test/
└── test_mylib.c
編寫源代碼文件。在src/
目錄下編寫file1.c
和file2.c
,并在其中定義你的函數和數據結構。在test/
目錄下編寫test_mylib.c
,用于測試你的庫。
創建config.h.in
文件。這個文件將作為庫的頭文件模板。在這個文件中,使用#ifndef
、#define
和#endif
預處理指令來防止頭文件被多次包含。例如:
#ifndef MYLIB_H
#define MYLIB_H
// 在這里聲明你的函數和數據結構
#endif // MYLIB_H
Makefile.am
文件。這個文件將用于生成Makefile,以便使用libtool構建庫。例如:lib_LTLIBRARIES = libmylib.la
libmylib_SOURCES = src/file1.c src/file2.c
include_HEADERS = include/mylib.h
這里,lib_LTLIBRARIES
定義了要生成的庫的名稱(不包括前綴lib
和后綴.la
),libmylib_SOURCES
列出了庫的所有源文件,include_HEADERS
列出了庫的頭文件。
src/
目錄下創建一個名為include
的子目錄,并將config.h.in
文件復制到該目錄中。然后,運行autoheader
命令生成config.h
文件:cd src
mkdir include
cp ../config.h.in include/config.h
autoheader
src/
目錄下運行libtoolize
命令,然后運行autoreconf
命令生成configure
腳本和Makefile.in
文件。接下來,運行./configure
命令生成Makefile。最后,運行make
命令編譯源代碼文件并生成庫文件:libtoolize
autoreconf
./configure
make
make install
命令將庫文件安裝到系統指定的目錄中。例如:sudo make install
現在,你已經成功地使用libtool創建了一個名為libmylib.la
的庫文件。你可以在其他項目中使用這個庫文件。