mysql udf错误 - 无法在ubuntu 12.04 64位中安装

时间:2014-03-17 09:31:50

标签: mysql ubuntu user-defined-functions

我在安装mysql udf(https://github.com/mysqludf/lib_mysqludf_sys)时遇到问题。这就是我得到的:

Compiling the MySQL UDF
gcc -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o /usr/lib/lib_mysqludf_sys.so
/usr/bin/ld: /tmp/ccw6HRtN.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/tmp/ccw6HRtN.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [install] Error 1
ERROR: You need libmysqlclient development software installed 
to be able to compile this UDF, on Debian/Ubuntu just run:
apt-get install libmysqlclient15-dev

有什么想法吗? TIA

更新:

我已经安装了libmysqlclient15-dev

2 个答案:

答案 0 :(得分:0)

尝试使用-fPIC标志重新编译。它显然暗示了它:

/ usr / bin / ld:/tmp/ccw6HRtN.o:在创建共享对象时,不能使用针对`.rodata'的重定位R_X86_64_32; 使用-fPIC重新编译

答案 1 :(得分:0)

我知道这是一个老问题,但是我使用Ubuntu 16时遇到了这个问题。

我解决了以下列方式更改Makefile,as explained in a GitHub issue

LIBDIR=/usr/lib/mysql/plugin

install:
        gcc -DMYSQL_DYNAMIC_PLUGIN -fPIC -Wall -I/usr/include/mysql -I. -shared lib_mysqludf_sys.c -o $(LIBDIR)/lib_mysqludf_sys.so