1

MAMPでローカルに開発しており、MAMPのMySQLと連携するにはSphinxが必要です。基本的に、の間に行き止まりになり$ sudo makeます。

MAMPは、Sphinx統合に必要なリソース、主にmysqllibディレクトリとCヘッダーソースファイルで満たされたincludeディレクトリなしでインストールされます。これらは(CMakeを使用して)次のディレクトリに正常にダウンロードおよびインストールされました。

/ Applications / MAMP / Library / include / mysql
/ Applications / MAMP / Library / lib / mysql

Sphinxを解凍して実行した後:

sudo ./configure --prefix=/usr/local/sphinx --with-libstemmer --with-mysql=/Applications/MAMP/Library

私が得た:

******************************************************************************
ERROR: cannot find MySQL include files.

Check that you do have MySQL include files installed.
The package name is typically 'mysql-devel'.

If include files are installed on your system, but you are still getting
this message, you should do one of the following:

1) either specify includes location explicitly, using --with-mysql-includes;
2) or specify MySQL installation root location explicitly, using --with-mysql;
3) or make sure that the path to 'mysql_config' program is listed in

./configureコマンドを次のように変更します。

sudo ./configure --prefix=/usr/local/sphinx--with-libstemmer --with-mysql-includes /Applications/MAMP/Library/include --with-mysql-libs /Applications/MAMP/Library/lib

最初に以下をスローしますが、構成が成功するかどうかは関係ありません。

configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: /Applications/MAMP/Library/include
configure: WARNING: you should use --build, --host, --target
configure: WARNING: invalid host type: /Applications/MAMP/Library/lib

ログには次の行もあります(これは1秒で関連すると思います)。

checking MySQL include files... -Iyes

続けて、$ sudo make次をスローします。

Making all in src
/bin/sh svnxrev.sh ..
make  all-am
g++ -DHAVE_CONFIG_H -I. -I../config  -DSYSCONFDIR="\"/usr/local/sphinx--with-libstemmer/etc\"" -DDATADIR="\"/usr/local/sphinx--with-libstemmer/var/data\"" -I/usr/local/include -Iyes   -Wall -g -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG -MT sphinx.o -MD -MP -MF .deps/sphinx.Tpo -c -o sphinx.o sphinx.cpp
In file included from sphinx.cpp:16:
sphinx.h:64:19: error: mysql.h: No such file or directory

... //whole bunch of errors follow, resulting from the above

つまり、mysql.hがインクルードファイルに存在することを知っています。必要なバイナリもすべてあると思います。構成にはインクルードファイルが表示されているように見えるので、少し髪を引き裂いています。これが単純なパスの問題であるか、。/ configure属性を使用した構文エラーであると期待しています。これは、コマンドラインからのコンパイルとインストールが初めてであるためです。

ありがとう。

4

1 に答える 1

1

Sphinx./configureは、の不明なデフォルト値を--with-mysql使用します。これはデフォルトで有効になっているため、呼び出す必要はないと思われる可能性があります。

SphinxがMAMPのさまざまに分散されたMySQLファイルで動作するようにするには、./configureコマンドで次の各属性を使用し、それぞれに直接パスを指定してください。

--with-mysql= // root mysql app
--with-includes= // path to mysql header includes
--with-mysql-libs= // path to libmysqlclient.dylib files

私のために働いた最後のコマンド:

./configure --prefix=/usr/local/sphinx --with-libstemmer --with-mysql=/Applications/MAMP/Library --with-mysql-includes=/Applications/MAMP/Library/include/mysql --with-mysql-libs=/Applications/MAMP/Library/lib/mysql

--prefixはusr/localの優先インストールディレクトリであり--libstemmer、Snowballの拡張ステミング機能を追加します(ダウンロードした場合)。

これがエラーなしで実行される場合は、そのままで問題makeありmake installません。

また、圧縮されていないSphinxディレクトリに設定エラーログがあり、見落としがちです。このシナリオでは役に立ちませんでしたが、問題が発生した場合は他の人にとって非常に役立つ可能性があります。

于 2012-05-14T17:11:07.440 に答える