2011-07-16 21 views
1

Cygwinのgcc C++ビルドでヘッダファイルとライブラリを使用できるようにMySQLを設定する方法を教えてください。MySQLにはCygwin gccのファイルが含まれています

私は、ウェブ上の説明を見てきましたが、「 のconfigureと同様に、私が持っていないものを指しているようです。 (私はMySQLが自分のビルドシステムを変更した疑いがある)。

の古いを使用して

バージョンはオプションかもしれないが、私はLinux上で同じバージョンを持っていることを好むだろう。

私は完全なCygwinのインストールを持っている。

答えて

2

だけで、Windowsのバージョンを使用してと間違って何まず、?それは正常に動作します。

私はあなたと同じことをしたいと思っています。私はサーバーを構築しようとしていないことに注意してください。私が関心を持っていたのはMySQLクライアントライブラリだけだったので、Cygwin環境で簡単なクライアント開発をすることができました。

Cygwinでクライアントライブラリをビルドするにはどうすればいいですか?

まず、タールボールを取得します。私はmysql-5.5.13.tar.gzを使用しました。適切な場所(例:/usr/local/src)に梱包します。

次に、Cygwinインストーラを使用してCMakeビルドシステムをインストールします。 MySQLはGNU AutotoolsからCMakeに切り替えました。 CMakeはメタ構築システムです。特定のビルド環境用にMakefileやその他のビルドスクリプトを生成します。

もちろん、makegccも必要です。

私はコンパイルするものを得るためにinnocuous little patch posted on the MySQL forum by one Hiroaki Kawaiを適用する必要がありました:

は最後に、私は、MySQL /文字列/ dtoa.c中)(_dtoaする)(すべてDTOAの名前を変更しました。 関数は静的であり、名前を変更するのが安全である必要があります。

あなたはPerlを使用してパッチを適用することができます

perl -pi.orig -e 's/\bdtoa\b/_dtoa/g' strings/dtoa.c 

その後、トップのソースディレクトリにある、タイプ:

cmake . 
make mysqlclient 

あなたはlibmysql/libclientlib.alibmysqlclient.aに2つの静的ライブラリを取得します。私は前者が(おそらく単なる人工物である)ことは知らないが、後者は本当のことである。

cp /usr/local/src/mysql-5.5/libmysql/libmysqlclient.a /usr/local/lib/ 

しかし、それは静的であり、おそらく動的ライブラリが必要です。これはCygwin docsが便利な場所です。だから、:共有ライブラリcygmysqlclient.dllとインポートライブラリlibmysqlclient.dll.aを作成します

module=mysqlclient 
gcc -shared -o cyg${module}.dll \ 
-Wl,--out-implib=lib${module}.dll.a \ 
-Wl,--export-all-symbols \ 
-Wl,--enable-auto-import \ 
-Wl,--whole-archive lib${module}.a \ 
-Wl,--no-whole-archive -lz 

。両方を/usr/local/binにコピーします。以上です。

ここにはanother question on building the MySQL client library on Cygwinです。

+0

私の設定では、cmakeがクラッシュする:-( – Olav

+0

クラッシュ?症状は何ですか? – Lumi

関連する問題