Linux 64位上的mysql-python静态链接

1 投票
1 回答
978 浏览
提问于 2025-04-15 17:57

有没有人尝试过在64位的Linux上,把mysql-python和mysql客户端库静态链接起来?

gcc -pthread -shared build/temp.linux-x86_64-2.6/_mysql.o /home/apy/MySQL-
python-1.2.3c1/mysql-5.1.42/i/lib/mysql/libmysqlclient_r.a -L/home/apy/MyS
QL-python-1.2.3c1/mysql-5.1.42/i/lib/mysql -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -
lm -lpthread -o build/lib.linux-x86_64-2.6/_mysql.so
/usr/lib64/gcc-lib/x86_64-suse-linux/3.3.4/../../../../x86_64-suse-linux/bin/ld: /home/a
py/MySQL-python-1.2.3c1/mysql-5.1.42/i/lib/mysql/libmysqlclient_r.a(libmys
ql.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a sha
red object; recompile with -fPIC
/home/apy/MySQL-python-1.2.3c1/mysql-5.1.42/i/lib/mysql/libmysqlclient_r.a: could not read symbols: Bad value

另外可以参考:mysql-python:在Mac OS X上构建一个完全独立的 _mysql.so?

1 个回答

1
  1. 设置一个叫做 CFLAGS="-fPIC" 的环境变量。(原因)

  2. 在构建 MySQL 时,给 ./configure 加上 --disable-shared 这个选项(还有 --enable-static 这个选项)。

撰写回答