22 votos

Tratando de construir PHP extensión PDO para el Cohete de U2

Me pregunto si alguien me puede ayudar con un problema que me está haciendo tirar lo que queda de mi pelo...

Actualmente estoy trabajando en un proyecto que me obliga a hablar a un Unidata de la base de datos. PHP no tiene el driver nativo para acceder a este tipo de base de datos, sin embargo, después de buscar un poco en Google, he encontrado los siguientes:

https://u2devzone.rocketsoftware.com/accelerate/articles/u2-pdo-driver/u2-pdo-driver.

Tengo el U2 de Intercall de cabecera y la biblioteca y creo que estoy incluyendo correctamente. Sin embargo, la extensión compila, pero no pasar las pruebas como los errores con

pdo_u2.so: undefined symbol: ic_universe_session in Unknown on line 0

que me sugiere que no se está enlazado con la biblioteca. Cuando puedo editar el archivo makefile y especificar a mano que la biblioteca debe estar incluido, los errores con

relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/home/kaigoh/Downloads/intcall/lib/libuvic.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [pdo_u2.la] Error 1

He intentado forzar la -fPIC modificador en el archivo makefile, pero me sale el mismo error.

Yo simplemente no sabemos lo suficiente acerca de la compilación personalizada extensiones de PHP para ayudar a mí mismo, y tengo la esperanza de que hay un gurú de aquí que pueda me apunte en la dirección correcta!

ACTUALIZACIÓN: Esto compila perfectamente el uso de una instalación de 32 bits de Linux, así que ni idea de por qué se está fallando con una de 64 bits instalar...

1voto

CXJ Puntos 539

lib/libuvic.una necesita ser recompilado con -fPIC, no sólo el código que está tratando de poner el enlace. No le puedo decir a partir de su salida de muestras si se vuelve a compilar la biblioteca con -fPIC así, o no.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X