automake 共享库
来源:互联网 发布:融资租赁业务软件 编辑:程序博客网 时间:2024/06/04 19:28
使用automake编译共享库的两种方法
用automake编译共享库有多种方法,automake本身提供了对编译共享库支持,当然我们也可以不使用它的这个功能,下面分别介绍这两种方法:
一、不使用automake编译共享库功能
configure.ac和Makefile.am的配置和可执行文件基本相同,仅仅Makefile.am中的变量名有些区别,另外需要再加上“-fPIC -shared”链接选项,
如可以将“bin_”改成其它名字,如“module_”,这样就变成了:
LDFLAGS=-fPIC -shared
moduledir=$(prefix)/lib # 请注意由于module不是automake标准的名称,所以需要自己加上安装目前
module_PROGRAMS = libfoo.so
libfoo_so_SOURCES = foo.c foo.h
二、使用automake编译共享库功能
automake提供的编译共享库功能比较完善,支持同时编译出静态和共享两个,及带版号的多个版本,方法如下:
1、需要在configure.ac或configure.in文件中增加如下一句:
AC_PROG_LIBTOOL
2、在运行automake -a之前,需要执行
libtoolize -f -c
3、Makefile.am的格式有点区别,如下:
lib_LTLIBRARIES = libfoo.la # 注意不是libfoo.so
libfoo_la_SOURCES = foo.cpp foo.h
这样编译成功之后,共享库将生成在.libs目录下,包括如下一些文件:
-rw-r--r-- 1 jayyi users 11092 2007-06-08 16:48 libfoo.a
lrwxr-xr-x 1 jayyi users 10 2007-06-08 16:48 libfoo.la -> ../libfoo.la
-rw-r--r-- 1 jayyi users 989 2007-06-08 16:48 libfoo.lai
lrwxr-xr-x 1 jayyi users 13 2007-06-08 16:48 libfoo.so -> libfoo.so.0.0.0*
lrwxr-xr-x 1 jayyi users 13 2007-06-08 16:48 libfoo.so.0 -> libfoo.so.0.0.0*
-rwxr-xr-x 1 jayyi users 13361 2007-06-08 16:48 libfoo.so.0.0.0*
-rw-r--r-- 1 jayyi users 11044 2007-06-08 16:48 foo.o
用automake编译共享库有多种方法,automake本身提供了对编译共享库支持,当然我们也可以不使用它的这个功能,下面分别介绍这两种方法:
一、不使用automake编译共享库功能
configure.ac和Makefile.am的配置和可执行文件基本相同,仅仅Makefile.am中的变量名有些区别,另外需要再加上“-fPIC -shared”链接选项,
如可以将“bin_”改成其它名字,如“module_”,这样就变成了:
LDFLAGS=-fPIC -shared
moduledir=$(prefix)/lib # 请注意由于module不是automake标准的名称,所以需要自己加上安装目前
module_PROGRAMS = libfoo.so
libfoo_so_SOURCES = foo.c foo.h
二、使用automake编译共享库功能
automake提供的编译共享库功能比较完善,支持同时编译出静态和共享两个,及带版号的多个版本,方法如下:
1、需要在configure.ac或configure.in文件中增加如下一句:
AC_PROG_LIBTOOL
2、在运行automake -a之前,需要执行
libtoolize -f -c
3、Makefile.am的格式有点区别,如下:
lib_LTLIBRARIES = libfoo.la # 注意不是libfoo.so
libfoo_la_SOURCES = foo.cpp foo.h
这样编译成功之后,共享库将生成在.libs目录下,包括如下一些文件:
-rw-r--r-- 1 jayyi users 11092 2007-06-08 16:48 libfoo.a
lrwxr-xr-x 1 jayyi users 10 2007-06-08 16:48 libfoo.la -> ../libfoo.la
-rw-r--r-- 1 jayyi users 989 2007-06-08 16:48 libfoo.lai
lrwxr-xr-x 1 jayyi users 13 2007-06-08 16:48 libfoo.so -> libfoo.so.0.0.0*
lrwxr-xr-x 1 jayyi users 13 2007-06-08 16:48 libfoo.so.0 -> libfoo.so.0.0.0*
-rwxr-xr-x 1 jayyi users 13361 2007-06-08 16:48 libfoo.so.0.0.0*
-rw-r--r-- 1 jayyi users 11044 2007-06-08 16:48 foo.o
- automake 创建共享库
- automake 共享库
- 用automake建立共享库(动态链接库)Makefile
- 用automake建立共享库(动态链接库)Makefile
- 用automake建立共享库(动态链接库)Makefile
- automake 生成动态链接库 - automake&Makefile
- automake动态库
- automake创建静态库
- automake 使用库文件
- automake
- automake
- Automake
- automake
- AutoMake
- automake
- Automake
- automake
- automake
- autobiography——John. S. Mill
- [人搜]人搜面试摘录
- 0.ring3-反调试-CheckRemoteDebuggerPresent(ProcessDebugPort)
- latex初步学习
- 表达式计算: 分析与设计
- automake 共享库
- 【转】人搜面试经历
- 删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化(合并)为1个
- c++学习笔记之函数重载与const的关系
- JAVA中的时间操作
- pl/sql developer常用设置
- C# 画图画不出来的解决办法
- 七夕·殇
- GPS英文缩写