2011/03/16

automakeの使い方 - ライブラリの使用

automakeでライブラリをリンクする方法


1 ディレクトリ内に以下のファイルを作成

ここでは、例としてmysqlに接続してデーターベースを表示します。
(接続するユーザー名とパスワードは、main.cppを変更する必要があります)




2 [autoscan]を実行し、configure.acに名前を変更

3 configure.acの編集
  1. AC_INITの修正とAM_INIT_AUTOMAKE([foreign])を追加
  2. ヘッダーを調べる為、AC_CHECK_HEADERS([mysql/mysql.h])を追加
  3. ライブラリを調べる為、AC_CHECK_LIB( mysqlclient, mysql_init ) を追加

AC_CHECK_HEADERS([ファイル名])は、『#define HAVE_ファイル名 0/1』
AC_CHECK_LIB([ ライブラリ名, 関数名])は、『#define HAVE_LIBライブラリ名 0/1』をconfig.hに追加する。


編集したconfigure.ac
#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.65])
AC_INIT([test], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([test_mysql.cpp])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC

# Checks for libraries.
AC_CHECK_LIB( mysqlclient, mysql_init ) 

# Checks for header files.
AC_CHECK_HEADERS([mysql/mysql.h])

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

# Checks for library functions.

AC_CONFIG_FILES([Makefile])
AC_OUTPUT

この例の場合、ヘッダが見つかれば『#define HAVE_MYSQL_MYSQL_H 1』
ライブラリが見つかれば『#define HAVE_LIBMYSQLCLIENT 1』が追加される

4 [autoreconf -i && ./configure && make]を実行

0 コメント:

コメントを投稿

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates