سؤال

أقوم بربط تطبيق بمكتبة MySqlClient على CentOS 64 -Bit 5.4 وأحصل على خطأ في الارتباط (لا يمكن العثور على -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 Linker:

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

الطريقة الوحيدة التي يمكنني بها ربط التطبيق على هذا الجهاز هي تحديد مسار كامل إلى ملف المكتبة غير المقبول في حالتي. ما الذي يمكن أن يسبب المشكلة هنا؟

شكرًا.

هل كانت مفيدة؟

المحلول

-L/usr/lib64/mysql

يتم استخدام الأشياء ld.so.conf فقط في وقت التشغيل ، وليس وقت الترجمة.

نصائح أخرى

/usr/lib64/mySQL ليس بالتأكيد في مسار البحث الافتراضي الخاص بـ GCC. يمكنك استخدام برنامج نصي AutoconF للبحث عن مسار التثبيت لـ libmysqlclient على هذا النوع من التوزيع ، واستخدام الموقع الذي تم العثور عليه ديناميكيًا مع علامة -L.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top