CentOS 7でBacula 9.0.6をコンパイルするときにエラーが発生しました。

CentOS 7でBacula 9.0.6をコンパイルするときにエラーが発生しました。

私のニーズに合わせて設定した後、ソースからbacula 9.0.6をコンパイルしています。

./configure --with-readline=/usr/include/readline --disable-conio --bindir=/usr/bin --sbindir=/usr/sbin --with-scriptdir=/usr/libexec/bacula/ --with-working-dir=/var/spool/bacula/ --with-logdir=/var/log --enable-smartalloc --with-mysql [email protected] --with-hostname=192.168.0.4

それから私は走ろうとします。

make -j8

ただし、しばらくすると、次のエラーが発生します。

/bacula-9.0.6/libtool --silent --tag=CXX --mode=link /usr/bin/g++    
-o libbaccats-mysql.la mysql.lo -export-dynamic -rpath /usr/lib64 -
release 9.0.6 \
                     -soname libbaccats-9.0.6.so -L/usr/lib64/ -
lmariadb -lnsl -lz -ldl -lm -lpthread -lssl -lcrypto   
/usr/bin/ld: cannot find -lmariadb
collect2: error: ld returned 1 exit status
make[1]: *** [libbaccats-mysql.la] Error 1
make[1]: Leaving directory `/bacula-9.0.6/src/cats'


  ====== Error in /bacula-9.0.6/src/cats ======

理由がわからない。 mariadb-develを含む最新バージョンのMariaDB(mysql)をインストールしました。私はライブラリを検索してみましたが(ライブラリの場所と/ lib /ディレクトリの間にシンボリックリンクを作成することを提案している人をインターネットで検索しました)、何も見つかりませんでした。私はMySqlの専門家ではなく、オンラインで有用な情報を見つけることができませんでした。だから私はあなたに尋ねます。ソースコードをコンパイルするときにエラーを解決するには?

よろしくお願いします!

ベストアンサー1

解決しました!私はこれが同じ場所にmariadb.aという名前の/usr/lib64/mariadbclient.aのコピーを作成するのに十分であることを知りました。もちろん、ファイル名を直接変更するよりもコピーを作成することが重要です。最初は/baculasrc/src/catsのMakefileからライブラリ名を削除すれば十分だと思いましたが、インストール後にbacula環境で一部のコンポーネントが欠落していました。正確に言えば、最新バージョンのMariaDBでは、いくつかのライブラリの名前アップグレードの問題です。あるいは、ソースライブラリファイルへのシンボリックリンクを作成することもできます。

おすすめ記事