- 論壇徽章:
- 0
|
......你看下configure && make后的編譯展開(kāi)的gcc完整編譯/鏈接命令行, 看下是否有問(wèn)題。
假設(shè)庫(kù)源碼目錄有如下文件:
Makefile.am
src1.c src1.h
src2.c src2.h
myexpfunc.h
footest.c
/////////////////////////////////////////////////////////////
Makefile.am可以如下寫(xiě)法:
include_HEADERS=myexpfunc.h //最終調(diào)用者所使用的動(dòng)態(tài)庫(kù)函數(shù)聲明文件, 執(zhí)行make install會(huì)將其在prefix目錄下的include中
lib_LTLIBRARIES=libfoo.la
libfoo_la_LDFLAGS = -version-info 1:0:1 //可以指定下版本號(hào),這樣會(huì)生成libfoo.so.1.0.1 然后make install后會(huì)自動(dòng)創(chuàng)建符號(hào)鏈接libfoo.so->libfoo.so.1.0.1
libfoo_la_SOURCES=src1.c src2.c
libfoo_la_LIBADD= //本動(dòng)態(tài)庫(kù)的第三方依賴(lài)庫(kù), 比如openssl 可以寫(xiě)為: -L /my_openssl_lib -lcrypto, 如果不依賴(lài)可以不寫(xiě), 具體依賴(lài)目錄可以在configure.in中編寫(xiě)--with參數(shù)指定
INCLUDES= //本動(dòng)態(tài)庫(kù)的第三方依賴(lài)頭文件目錄, 比如openssl可以寫(xiě)為: -I my_openssl_inc, 如果不依賴(lài)可以不寫(xiě), 具體依賴(lài)目錄可以在configure.in中編寫(xiě)--with參數(shù)指定
bin_PROGRAMS=footest //生成一個(gè)libfoo的測(cè)試程序,如果不需要?jiǎng)t不必寫(xiě), 最終make install會(huì)cp到prefix目錄的bin下, 如果不想安裝則寫(xiě)為noinst_PROGRAMS
footest_SOURCES=footest.c
footest_LDADD= ./libfoo.la |
|