مشكلة ربط مكتبة MySqlClient
-
21-09-2019 - |
سؤال
أقوم بربط تطبيق بمكتبة 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.
لا تنتمي إلى StackOverflow