automakeを突っ込んで勉強してみる(その5 〜 ビルドおよび実行 〜)
目標
- 全体のビルド
トップディレクトリとファイル
ディレクトリ構造は以下のとおり
test2 ★ トップディレクトリ +- Makefile.am ★ Makefile +- common ★ 共通機能 +- main ★ メイン機能 +- sub ★ サブ機能
ビルド方法
ビルド方法は、以下のとおり。
- [autoscan]実行
- configure.acの作成
- [autoreconf -ivh]実行
- [./configure]実行
- [make]実行
- [make install]実行
- LD_LIBRARY_PATHの設定
configure.acの作成
autoscan の実行で、configure.scanファイルができる。このファイルをリネームして、下記のように編集する。
andre@andre-VirtualBox:~/work/autoreconf/test$ diff configure.scan configure.ac 5,6c5,7 < AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) < AC_CONFIG_SRCDIR([config.h.in])
-
- -
LD_LIBRARY_PATHの設定
動的ライブラリがあるディレクトリをLD_LIBRARY_PATHに設定しなければならない。
(設定前)
andre@andre-VirtualBox:~/work/autoreconf/test/main/bin$ echo $LD_LIBRARY_PATH :/usr/local/lib:/home/andre/local/lib/valgrind:/home/andre/local/lib andre@andre-VirtualBox:~/work/autoreconf/test/main/bin$ ldd main linux-gate.so.1 => (0x00a9a000) libsub.so.0 => not found libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00110000) /lib/ld-linux.so.2 (0x00cbe000)
(設定後)
andre@andre-VirtualBox:~/work/autoreconf/test/main/bin$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/andre/work/autoreconf/test/sub/lib andre@andre-VirtualBox:~/work/autoreconf/test/main/bin$ ldd main linux-gate.so.1 => (0x00e41000) libsub.so.0 => /home/andre/work/autoreconf/test/sub/lib/libsub.so.0 (0x009db000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0x00a82000) /lib/ld-linux.so.2 (0x00706000)
実行
ライブラリパスの設定が終われば、mainを実行できる。
andre@andre-VirtualBox:~/work/autoreconf/test/main/bin$ ./main print_common print_sub main