当前位置:  开发笔记 > 编程语言 > 正文

如何在执行./configure时设置ccshared = -fPIC?

如何解决《如何在执行./configure时设置ccshared=-fPIC?》经验,为你挑选了3个好方法。

我正在尝试在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文件中找到了它,但它检查了几个条件,并根据它分配-fPICCCSHARED标志的条件.

我所做的是,在检查所有条件后,我添加以下行以故意使用CCSHAREDas -fPIC.

CCSHARED="-fPIC";

但它没有用..

如何在配置时指定我要设置CCSHARED-fPIC



1> A. Coady..:

运行configure with --enable-shared.然后-fPIC将作为共享标志的一部分包含在内.


不幸的是,当我尝试运行`./configure --enable-shared`时,这导致许多重要的Python内置模块无法编译(我正在尝试为64位Ubuntu 11.04系统编译Python 2.7.3) .而不是添加`--enable-shared`,我不得不编辑`Makefile`并在`CC =`之后添加`-fPIC`,按照下面的ashishsony的回答.
为我运行`./configure --enable-shared --with-pic`工作

2> Crt..:

当我遇到这个错误时,以下内容对我有用:

make clean
./configure CFLAGS=-fPIC CXXFLAGS=-fPIC


这是唯一对我有用的答案。

3> ashishsony..:

我通过添加-fPIC后来工作CC= gcc -pthread,即CC= gcc -pthread -fPIC在Makefile中.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有