roms resetear reconoce para mejor mame32 los jeremytv emulador controles configurar con como arcade c++ makefile g++

c++ - resetear - ¿Cómo puedo configurar ccshared=-fPIC mientras ejecuto./configure?



mame32 no reconoce joystick (8)

Estoy intentando construir Python 2.6 para QGIS en RHEL 5. Durante la creación de QGIS, obtengo el siguiente error:

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

Lo que -fPIC de este error es que necesito compilar Python 2.6 con algún indicador, -fPIC . De acuerdo, lo encontré en el archivo configure.in pero verifica varias condiciones y sobre la base de esas condiciones asigna -fPIC al indicador CCSHARED .

Lo que hice fue que después de verificar todas las condiciones, agregué la siguiente línea para usar CCSHARED deliberadamente como -fPIC .

CCSHARED="-fPIC";

Pero no funcionó..

¿Cómo especificar mientras configuro que quiero configurar CCSHARED como -fPIC ?


  1. Ejecute ./configure --help , posiblemente canalizando a grep PIC, para ver si hay una opción para habilitar esto
  2. Intente configurar la variable de entorno antes de ejecutar configure, por ejemplo, CCSHARED = "- fPIC" ./configure (como un solo comando, asumiendo bash)

Si ninguno de los dos funciona, necesita leer el código de configuración y comprender las condiciones que verifica para mejorar.


¿No es eso CCFLAGS ? (No he estado en ese lado del mundo por un tiempo).


Como se indicó en otra parte, la ejecución de configure con --enable-shared debería hacer que se incluya -fPIC en los indicadores del compilador. Sin embargo, aún puede ver el error "no se pudieron leer los símbolos" si intenta hacer una construcción paralela utilizando, por ejemplo, ''make -j8''. Tuve este mismo error en RHEL 5.2 y solo desapareció cuando eliminé el ''-j8'' de mi invocación make ...


Ejecute configurar con --enable-shared . Luego, -fPIC se incluirá como parte de las banderas compartidas.


El siguiente tiene un example de pasar fPIC para configurar


Lo siguiente funcionó para mí cuando me encontré con este error:

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


Lo tengo funcionando agregando -fPIC después de CC= gcc -pthread , es decir, CC= gcc -pthread -fPIC en el Makefile.


reconstruyó el openssl con ./config --prefix = / software / bea / openssl / 100c --openssldir = / software / bea / openssl / 100c / ssl compartido -fPIC

Y luego también no funciona. dio / usr / bin / ld: los enlaces fallaron. El modifiqué la parte de enlace en el archivo make previamente era gcc -Wall -shared -o pwutil.so asciihex.o base64.o bitutils.o dict.o gen_rand.o key_schedule.o md5c.o pdg2_ecb.o pwutils.o random_data .o hexutils.o des3crypt.o blowcrypt.o /software/bea/openssl/1.0.0c/lib/libcrypto.a

cambiamos libcrypto.a a libcrypto.so después de reconstruir con opción compartida y - fPIC

gcc -Wall -shared -o pwutil.so asciihex.o base64.o bitutils.o dict.o gen_rand.o key_schedule.o md5c.o pdg2_ecb.o pwutils.o random_data.o hexutils.o des3crypt.o blowcrypt.o / software / bea / openssl / 1.0.0c / lib / libcrypto.so

Y funcionó