我想知道是否有人可以帮助我解决一个让我把剩下的头发拔掉的问题......
我目前正在从事一个需要我与 Unidata 数据库对话的项目。PHP 没有本地驱动程序来访问这种类型的数据库,但是,经过一番谷歌搜索后,我发现了以下内容:
https://u2devzone.rocketsoftware.com/accelerate/articles/u2-pdo-driver/u2-pdo-driver。
我有 U2 Intercall 标头和库,我认为我正确地包含了它们。但是,扩展程序编译但没有通过测试,因为它出错了
pdo_u2.so: undefined symbol: ic_universe_session in Unknown on line 0
这向我表明它没有与图书馆链接。当我编辑生成文件并手动指定应包含该库时,它会出错
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
我尝试在 makefile 中强制使用 -fPIC 开关,但我得到了同样的错误。
我对编译自定义 PHP 扩展来帮助自己的知识还不够了解,我希望这里有一位大师可以为我指明正确的方向!
更新:使用 32 位安装的 Linux 可以完美编译,所以不知道为什么安装 64 位会失败...