2

アプリケーションを64ビットCentOS5.4のmysqlclientライブラリにリンクしていますが、リンクエラーが発生します(-lmysqlclientが見つかりません)。ライブラリは/usr/ lib64 /mysql/にあります。

una@localhost$ ll /usr/lib64/mysql/
total 9072
    ...
lrwxrwxrwx 1 root root      26 Jan  3 15:54 libmysqlclient_r.so -> libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root      26 Jan  3 15:54 libmysqlclient_r.so.15 -> libmysqlclient_r.so.15.0.0
-rwxr-xr-x 1 root root 1518456 Sep  4 01:28 libmysqlclient_r.so.15.0.0
lrwxrwxrwx 1 root root      24 Jan  3 15:54 libmysqlclient.so -> libmysqlclient.so.15.0.0
lrwxrwxrwx 1 root root      24 Jan  3 15:54 libmysqlclient.so.15 -> libmysqlclient.so.15.0.0
-rwxr-xr-x 1 root root 1514000 Sep  4 01:28 libmysqlclient.so.15.0.0
     ...

そして、ディレクトリはLinuxリンカーに正しく登録されているようです。

una@localhost$ cat /etc/ld.so.conf.d/mysql-x86_64.conf 
/usr/lib64/mysql

このマシンでアプリケーションをリンクできる唯一の方法は、ライブラリファイルへのフルパスを指定することです。これは私の場合は受け入れられません。ここで問題を引き起こす可能性があるのは何ですか?

ありがとう。

4

2 に答える 2

1
-L/usr/lib64/mysql

ld.so.confのものは実行時にのみ使用され、コンパイル時には使用されません。

于 2010-01-17T10:38:54.393 に答える
1

/ usr / lib64/mysqlは確かにgccのデフォルトの検索パスにありません。autoconfスクリプトを使用して、この種のディストリビューションでlibmysqlclientのインストールパスを検索し、見つかった場所を-Lフラグで動的に使用できます。

于 2010-01-17T10:57:21.357 に答える