当前位置: 技术问答>linux和unix
configure文件中如何加入其它库文件??
来源: 互联网 发布时间:2016-03-27
本文导语: 我正在修改一个开源程序,期间用到了一些另外的库(非标准库),但编译时如何加入这个库?如何在运行configure文件时加入 我调用的库? | 一般不建议直接修改configure文件,该文件其实是...
我正在修改一个开源程序,期间用到了一些另外的库(非标准库),但编译时如何加入这个库?如何在运行configure文件时加入
我调用的库?
我调用的库?
|
一般不建议直接修改configure文件,该文件其实是用工具自动产生的。你可以修改由于产生configure文件的输入文件configure.in(相同目录下),然后调用autoconf来产生新的configure文件。要想加入新的依赖库,在configure.in文件中用AC_ARG_WITH来添加。添加好之后用autoconf产生新的configure文件就可以了。
具体参考autoconf的手册看看!
当然你也可以直接修改产生的makefile,不过这样显得有点点“暴力”。
GOOD LUCK!
具体参考autoconf的手册看看!
当然你也可以直接修改产生的makefile,不过这样显得有点点“暴力”。
GOOD LUCK!
|
除了configure.in,还需要修改相应的makefile.am
|
以前学automake时的简单例子
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
#
# configure.ac
#
AC_INIT(hello, 1.3, hello@hello.org)
AM_INIT_AUTOMAKE
AC_CONFIG_SRCDIR([src/hello.c])
AC_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_LIBTOOL
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h netdb.h sys/socket.h unistd.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_CHECK_FUNCS([socket])
AC_CHECK_LIB(nsl, gethostent)
AC_CHECK_LIB(socket, socket)
AC_CONFIG_FILES([Makefile
libmym/Makefile
src/Makefile])
AC_OUTPUT
#
# Makefile.am
#
AUTOMAKE_OPTIONS = foreign
SUBDIRS = libmym src
#
# src/Makefile.am
#
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = hello
hello_SOURCES = hello.c
hello_LDADD = $(top_builddir)/libmym/libmym.la
AM_CPPFLAGS =
-DLIBDIR="$(libdir)"
-I$(top_builddir)/libmym
#
# libmym/Makefile.am
#
AUTOMAKE_OPTIONS = foreign
lib_LTLIBRARIES = libmym.la
libmym_la_SOURCES = mym.c mym.h