自己写的如何在autotools中添加另外第三方提供的动态库的问题
1. 首先建立一个动态库
cd /usr/local/
mkdir test
cd test
vim hhh.c
如下:
hhh.c
void hello()
{
printf("in hello\n");
}
然后使用如下命令来生成库
gcc -fPIC -c hhh.c -o libhhh.o
gcc -shared -W1 -o libhhh.so libhhh.o -lc
然后再将当前路径加入到库查找路径中去:
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
现在就建立了一个动态库了.
接下来使用刚刚建立的这个动态库.
2. 使用autotools将该动态库加入到自己的工程中去
cd /home/scutan/auto
mkdir src
在src/目录中编辑test.c文件:
test.c
#include
int main()
{
printf("main\n");
hello();
return 0;
}
然后回到上一层目录cd ../
建立Makefile.am文件 (auto/Makefile.am)
bin_PROGRAMS=test
test_SOURCES=src/test.c
test_LDADD=/usr/local/test/libhhh.so
然后执行命令autoscan生成configure.scan
修改成如下所示:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(test,1.1.1,[chinatan])
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/test.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
AC_CHECK_LIB([hhh], [main])
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_OUTPUT([Makefile])
然后将该文件名改为configure.in
mv configure.scan configure.in
然后执行如下命令建立必要的文件
touch NEWS README AUTHORS ChangeLog
最后再执行
此时就可以使用./configure了.
./configure
make
make install
./test 执行就可看到效果.
然后再make dist打包..
阅读(954) | 评论(0) | 转发(0) |