gcc编译错误!

在64为linux系统下执行如下命令:
gcc -fPIC -shared palindrome.o palindrome_wrap.o -o _palindrome.so
提示:
/usr/bin/ld: palindrome.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
palindrome.o: could not read symbols: Bad value
collect2: ld 返回1
但是已经加了-fPIC
提衡燃肢示是说编译的时候加上参数-fPIC,和你做的咐世完全不一样。
当输入文件为.c、.cxx、.cpp等等时,gcc先编译后链接
当输入文件是.o时gcc只执行连接步段模骤。

应该的命令行类似:
gcc -c -fPIC palindrome.c -o palindrome.o
提示是说咐哗编译的时候加上参数-fPIC,和你做的完全不一样。
当输入文件为.c、.cxx、.cpp等等时,gcc先编译后链接
当输入腊姿文件是.o时gcc只轮简绝执行连接步骤。
提示说需要-fPIC编译,然后在链接动态库的地方加上-fPIC的参数编译结果还是报错,迹正需要把共享库所用姿袭悔到的所有静态库都采用禅答-fPIC编译一边才可以成功的在64位环境下编译出动态库。
这里的-fPIC指的是地址无关代码

你看看这里的这篇文章吧:http://www.cnblogs.com/lightsalt/archive/2011/10/19/2217628.html