我正在尝试在RHEL 5 上为QGIS构建Python 2.6 .在制作QGIS期间,我收到以下错误:
Linking CXX shared library libqgispython.so /usr/bin/ld: /usr/local/lib/python2.6/config/libpython2.6.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/local/lib/python2.6/config/libpython2.6.a: could not read symbols: Bad value collect2: ld returned 1 exit status make[2]: *** [src/python/libqgispython.so.1.0] Error 1 make[1]: *** [src/python/CMakeFiles/qgispython.dir/all] Error 2 make: *** [all] Error 2
我从这个错误中得出的结论是,我需要用一些标志来构建Python 2.6 -fPIC
.好的,所以我在configure.in
文件中找到了它,但它检查了几个条件,并根据它分配-fPIC
给CCSHARED
标志的条件.
我所做的是,在检查所有条件后,我添加以下行以故意使用CCSHARED
as -fPIC
.
CCSHARED="-fPIC";
但它没有用..
如何在配置时指定我要设置CCSHARED
为-fPIC
?
运行configure with --enable-shared
.然后-fPIC
将作为共享标志的一部分包含在内.
当我遇到这个错误时,以下内容对我有用:
make clean ./configure CFLAGS=-fPIC CXXFLAGS=-fPIC
我通过添加-fPIC
后来工作CC= gcc -pthread
,即CC= gcc -pthread -fPIC
在Makefile中.