0

外部データベースにアクセスする C++ で記述された組み込みアプリケーション (Linux 環境の PowerPC で実行) があります。したがって、私のアプリケーションには、powerpc コンパイラを使用してビルドする必要がある mysql++ ライブラリが必要です。ライブラリをビルドする前に、Ubuntu VM で Linux 用の mysql++ ライブラリをビルドして手順を確認したいと思いました。公式サイトから最新のパッケージをダウンロードしました。次に、記載されている手順に従いました。

  1. ルート ディレクトリから ./configure を実行すると、以下のエラーが発生しました

* MySQL ライブラリ ディレクトリをチェックしています... configure: エラー: '/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/ に mysqlclient ライブラリが見つかりませんでしたlocal/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/lib/ mysql /sw/lib /sw/lib/mysql' *

mysqlclient を見つけようとしましたが、参照が見つかりませんでした。そのため、他のフォーラムで提供された指示に従い、以下のコマンドを使用して libmysqlclient15-dev をインストールしようとしました。

sudo apt-get インストール libmysqlclient15-dev

出力は次のとおりです。

パッケージリストを読み込んでいます... 完了 依存関係ツリーを構築しています
状態情報を読み込んでいます... 完了 「libmysqlclient15-dev」の代わりに「libmysqlclient-dev」を選択すると libmysqlclient-dev はすでに最新バージョンです。

次のパッケージは自動的にインストールされ、不要になりました。 headers-3.2.0-32 linux-headers-3.2.0-29 libcommons-compress-java libregexp-java libdb-java libswt-cairo-gtk-3-jni libjasper-java libbonoboui2-common libbonoboui2-0 libdb5.1-java -gcj libcommons-httpclient-java libservlet2.4-java liblucene2-java libswt-gtk-3-java libcommons-cli-java libslf4j-java libgcj12 libxml-commons-external-java libswt-webkit-gtk-3-jni linux-headers -3.2.0-29-generic-pae libswt-gtk-3-jni ant gcj-4。6 ベース libcommons-logging-java default-jdk libswt-glx-gtk-3-jni libcommons-codec-java jarwrapper libequinox-osgi-java libgcj-common libapache-pom-java libgnomeui-0 libjetty-java libjline-java libxerces2- java sat4j libcommons-beanutils-java libdb-je-java fastjar libcommons-digester-java libcommons-parent-java libhamcrest-java libjtidy-java libxml-commons-resolver1.1-java libicu4j-java linux-headers-3.2.0-32 -generic-pae libicu4j-4.4-java libwebkitgtk-1.0-common libcommons-lang-java libwebkitgtk-1.0-0 libjavascriptcoregtk-1.0-0 libjsch-java ant-optional libswt-gnome-gtk-3-jni0-common libcommons-lang-java libwebkitgtk-1.0-0 libjavascriptcoregtk-1.0-0 libjsch-java ant-optional libswt-gnome-gtk-3-jni0-common libcommons-lang-java libwebkitgtk-1.0-0 libjavascriptcoregtk-1.0-0 libjsch-java ant-optional libswt-gnome-gtk-3-jni

それらを削除するには、「apt-get autoremove」を使用します。0 がアップグレードされ、0 が新しくインストールされ、0 が削除され、0 がアップグレードされませんでした。

この後、libmysqlclient を見つけようとしましたが、ライブラリ (.so ファイル) が見つかりませんでした。./configureを再試行したところ、同じ場所で同じエラー メッセージが表示されて失敗しました。libmysqlclient をインストールするにはどうすればよいですか?

これが解決したら、powerpc 用のツールチェーンを使用して mysql++ ライブラリを再構築します。誰もこれを試しましたか?mysql++ ライブラリをビルドするには、mysqlclient が必要です。前の例では、コマンドapt-getを実行してインストールしますが、ライブラリは gnu コンパイラを使用してコンパイルされますか? powerpc 用に mysqlclient をクロスコンパイルするには? 私は以下を行う必要があると思います

  1. powerpc 用の mysqlclient をビルドします。
  2. これらのライブラリを使用して、powerpc 用の mysql++ ライブラリをビルドします。
  3. アプリケーションで mysql++ および mysqlclient ライブラリを使用し、powerpc 用にコンパイルします。

Linux とデータベースは初めてです。

4

1 に答える 1

0

私はついにこの問題を解決しました。私は以下を行いました。

  1. ここからConnector/C(libmysql)ソースファイルをダウンロードしました
  2. powerpc用にクロスコンパイルしました。以下はcmakeに与えられたコマンドです

    cmake -DCMAKE_INSTALL_PREFIX="~/mysqlclient_C/lib" -DCMAKE_C_COMPILER="ppc_4xx-gcc" -DCMAKE_C_FLAGS="-I/opt/ELDK/4.2/ppc_4xx/usr/include/" -DCMAKE_CXX_COMPILER="ppc_4xx-g++" -DCMAKE_CXX_FLAGS="-I/opt/ELDK/4.2/ppc_4xx/usr/include/" -DCMAKE_EXE_LINKER_FLAGS="-lm"
    

次に、単純な make によって libmysql ライブラリが生成されました。

  1. ここからmysql++ソースファイルをダウンロードしました
  2. powerpc用にクロスコンパイルしました。以下は私のconfigureコマンドです

    ./configure --target=powerpc-linux --host=powerpc-linux  --prefix="$HOME/mysql++/lib" --enable-thread-check --with-mysql="$HOME/mysqlclient_C/lib" CC=ppc_4xx-gcc CXX=ppc_4xx-g++ LDFLAGS=-lm CFFLAGS="-I/opt/ELDK/4.2/ppc_4xx/usr/include" CXXFLAGS="-I/opt/ELDK/4.2/ppc_4xx/usr/include"
    
  3. mysql++ ライブラリが生成されます。

ビルドされたライブラリはまだテストしていません。

于 2013-03-27T18:27:34.463 に答える