免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2873 | 回复: 2
打印 上一主题 下一主题

如何在autotools中使用其它动态库的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-12 15:16 |只看该作者 |倒序浏览
看到论坛上有朋友在问如何在autotools中添加另外第三方提供的动态库的问题,发现本版以前讲autotools的没有讲过这方面的内容, 所以就在网上搜索了一下, 自己也试验了一下,找到如下方法可以解决这个问题。
希望对大家有用.

1. 首先建立一个动态库
cd /usr/local/
mkdir test
cd test
vim hhh.c
如下:

hhh.c

  1. void hello()
  2. {
  3.         printf("in hello\n");
  4. }
复制代码

然后使用如下命令来生成库

  1. gcc -fPIC -c hhh.c -o libhhh.o
  2. gcc -shared -W1 -o libhhh.so libhhh.o -lc
复制代码

然后再将当前路径加入到库查找路径中去:

  1. export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
复制代码

现在就建立了一个动态库了.
接下来使用刚刚建立的这个动态库.

2. 使用autotools将该动态库加入到自己的工程中去
cd /home/scutan/auto
mkdir src

在src/目录中编辑test.c文件:
test.c

  1. #include<stdio.h>
  2. int main()
  3. {
  4.         printf("main\n");
  5.         hello();
  6.         return 0;
  7. }
复制代码


然后回到上一层目录cd ../
建立Makefile.am文件 (auto/Makefile.am)

  1. bin_PROGRAMS=test
  2. test_SOURCES=src/test.c
  3. test_LDADD=/usr/local/test/libhhh.so
复制代码


然后执行命令autoscan生成configure.scan
修改成如下所示:


  1. #                                               -*- Autoconf -*-
  2. # Process this file with autoconf to produce a configure script.

  3. AC_PREREQ(2.59)
  4. AC_INIT(test,1.1.1,[chinatan])
  5. AM_INIT_AUTOMAKE
  6. AC_CONFIG_SRCDIR([src/test.c])
  7. AC_CONFIG_HEADER([config.h])

  8. # Checks for programs.
  9. AC_PROG_CC


  10. # Checks for libraries.
  11. AC_CHECK_LIB([hhh], [main])
  12. # Checks for header files.

  13. # Checks for typedefs, structures, and compiler characteristics.

  14. # Checks for library functions.


  15. AC_OUTPUT([Makefile])
复制代码


然后将该文件名改为configure.in

  1. mv configure.scan configure.in
复制代码

然后执行如下命令建立必要的文件

  1. touch NEWS README AUTHORS ChangeLog
复制代码


最后再执行

  1. autoreconf -fvi
复制代码


此时就可以使用./configure了.

./configure
make
make install

./test 执行就可看到效果.

然后再make dist打包..



[ 本帖最后由 scutan 于 2007-12-12 15:37 编辑 ]
ruibob 该用户已被删除
2 [报告]
发表于 2007-12-12 18:25 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2007-12-12 23:30 |只看该作者
非常感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP