- 论坛徽章:
- 0
|
......你看下configure && make后的编译展开的gcc完整编译/链接命令行, 看下是否有问题。
假设库源码目录有如下文件:
Makefile.am
src1.c src1.h
src2.c src2.h
myexpfunc.h
footest.c
/////////////////////////////////////////////////////////////
Makefile.am可以如下写法:
include_HEADERS=myexpfunc.h //最终调用者所使用的动态库函数声明文件, 执行make install会将其在prefix目录下的include中
lib_LTLIBRARIES=libfoo.la
libfoo_la_LDFLAGS = -version-info 1:0:1 //可以指定下版本号,这样会生成libfoo.so.1.0.1 然后make install后会自动创建符号链接libfoo.so->libfoo.so.1.0.1
libfoo_la_SOURCES=src1.c src2.c
libfoo_la_LIBADD= //本动态库的第三方依赖库, 比如openssl 可以写为: -L /my_openssl_lib -lcrypto, 如果不依赖可以不写, 具体依赖目录可以在configure.in中编写--with参数指定
INCLUDES= //本动态库的第三方依赖头文件目录, 比如openssl可以写为: -I my_openssl_inc, 如果不依赖可以不写, 具体依赖目录可以在configure.in中编写--with参数指定
bin_PROGRAMS=footest //生成一个libfoo的测试程序,如果不需要则不必写, 最终make install会cp到prefix目录的bin下, 如果不想安装则写为noinst_PROGRAMS
footest_SOURCES=footest.c
footest_LDADD= ./libfoo.la |
|