
Ubuntu日本語フォーラム

ログインしていません。
お世話になっております。
openSIPSというSIPサーバのソフトウェアをインストールしようとしています。
ここから、opensips-1.4.4-notls_src.tar.gz を入手&解凍して、makeしたところ、
以下のようなエラーが出て、db_mysql.so というモジュールが作成出来ません。これは、認証を行う際に必要となるモジュールです。デフォルトでは
コンパイルされないので、Makefileを編集して、 "excluded_modules" listから削除しておく必要があるのですが、それは済ませております。
Compiling db_mysql.c
gcc -fPIC -DPIC -g -O9 -funroll-loops -Wcast-align -Wall -minline-all-stringops -falign-loops -ftree-vectorize -mtune=prescott -Wold-style-definition -Wmissing-field-initializers -Wredundant-decls -DMOD_NAME='"db_mysql"' -DNAME='"opensips"' -DVERSION='"1.4.4-notls"' -DARCH='"i386"' -DOS='"linux"' -DCOMPILER='"gcc 4.3.2"' -D__CPU_i386 -D__OS_linux -D__SMP_yes -DCFG_DIR='"/usr/local/etc/opensips/"' -DPKG_MALLOC -DSHM_MEM -DSHM_MMAP -DUSE_IPV6 -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DSTATISTICS -DCHANGEABLE_DEBUG_LEVEL -DF_MALLOC -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_EPOLL -DHAVE_SIGIO_RT -DHAVE_SELECT -I/usr/local/include -I/usr/local/include/mysql -I/usr/local/mysql/include/mysql -I/usr/local/mysql/include -I/usr/include/mysql -c db_mysql.c -o db_mysql.o
db_mysql.c:37:25: error: mysql/mysql.h: No such file or directory
db_mysql.c: In function ‘mysql_mod_init’:
db_mysql.c:87: 警告: implicit declaration of function ‘mysql_get_client_info’
db_mysql.c:87: 警告: format ‘%s’ expects type ‘char *’, but argument 4 has type ‘int’
make[1]: *** [db_mysql.o] エラー 1
make[1]: ディレクトリ `/home/ucym/opensips-1.4.4-notls/modules/db_mysql' から出ます
make: *** [modules] エラー 2
何が原因か、アドバイスをいただけますでしょうか?
mysql/mysql.h: No such file or directory がそれらしく見えます。この「mysql.h」というファイルを検索してみたんですが、
見つかりませんでした。これを作成すればよいのかもしれませんが、その方法もよく分かりません。
どうぞ、よろしくお願い致します。
オフライン
自己レスです。
db_mysqlのMakefielを見ると、mysql.hの場所に関する記述がありましたが、どうも、ここで定義されているのが
freebsd,openbsd solaris の場合のようです。これをUbuntu用に修正出来ればいいような気がします。
しかし、これが解決しても、コンピュータ上に、mysql.hがないという問題は残りますね。ちなみに、mysqlはインストール済みです。
このファイルには、libmysqlclientの場所についても書かれていますので、こちらの修正も必要かもしれません。
すみません、よろしくお願い致します。
・db_mysqlのMakefiel
# $Id: Makefile 3642 2008-02-06 15:46:09Z henningw $
#
# WARNING: do not run this directly, it should be run by the master Makefile
include ../../Makefile.defs
auto_gen=
NAME=db_mysql.so
# set CROSS_COMPILE to true if you want to skip
# the autodetection
# CROSS_COMPILE=true
ifeq ($(CROSS_COMPILE),)
MYSQLCFG=$(shell which mysql_config)
endif
ifneq ($(MYSQLCFG),)
# use autodetection
DEFS += $(shell $(MYSQLCFG) --include | sed 's/\(-I.*\)\/mysql/\1/g' )
LIBS = $(shell $(MYSQLCFG) --libs)
else
# use standard know paths
# mysql.h locations (freebsd,openbsd solaris)
DEFS +=-I$(LOCALBASE)/include -I$(LOCALBASE)/include/mysql \
-I$(LOCALBASE)/mysql/include/mysql -I$(LOCALBASE)/mysql/include \
-I$(SYSBASE)/include/mysql
# libmysqlclient locations on RH/Suse, Solaris /OpenBSD, FreeBSD
# (Debian does the right thing and puts it in /usr/lib)
LIBS=-L$(SYSBASE)/lib/mysql -L$(LOCALBASE)/lib -L$(LOCALBASE)/lib/mysql \
-L$(LOCALBASE)/mysql/lib/mysql/ \
-L$(LOCALBASE)/mysql/lib \
-L$(SYSBASE)/lib64/mysql \
-lm -lmysqlclient -lz
endif
include ../../Makefile.modules
オフライン
解決致しました。
原因は、libmysqlclient15-dev でした。
Synapticでインストールして、makeをしたら、成功しました。
お騒がせしてしまい、申し訳ありませんでした。
オフライン
Ubuntu 8.10
kernel 2.6.27-11-generic
opensips- 1.4.4.-tls_src.tar.gz
------------------------------------------
make
make modulse
make prefix=/usr/local install
------------------------------------------
version: opensips 1.4.4-notls (i386/linux)
Usage: opensips -l address
------------------------------------------
解決してたんですね、、、
:rolleyes: アンインストールの方が手間がかかるかも。
最後の編集者: hir0 (2009-03-08 17:20:51)
オフライン