在 Ubuntu 上“编译 Informix 驱动”通常有两种常见场景:
下面分别说明,你看看你属于哪一种。
Ubuntu 没有 apt 源,需要手动安装。
从 IBM 官网下载:
ids_client(Informix Client SDK)安装示例(rpm 转 deb 或直接使用):
sudo apt install alien
sudo alien -i ibm.csdk*.rpm
设置环境变量(非常重要):
export INFORMIXDIR=/opt/ibm/informix
export LD_LIBRARY_PATH=$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
export PATH=$INFORMIXDIR/bin:$PATH
sudo apt update
sudo apt install php-dev php-pear build-essential
sudo pecl install pdo_informix
如果失败,手动编译:
git clone https://github.com/php/pecl-database-pdo_informix
cd pecl-database-pdo_informix
phpize
./configure --with-pdo-informix=$INFORMIXDIR
make
sudo make install
启用:
echo "extension=pdo_informix.so" | sudo tee /etc/php/*/mods-available/pdo_informix.ini
sudo phpenmod pdo_informix
esql -c test.ec
esql -o test test.o -lintl -lifsql -lifasf
示例:
#include <stdio.h>
EXEC SQL INCLUDE sqlca;
int main() {
EXEC SQL CONNECT TO 'db@server';
printf("Connected\n");
return 0;
}
infxcli.h说明 INFORMIXDIR 没设对,或 CSDK 没装好。
undefined reference to ifx_*链接时缺少:
-lifsql -lifasf -lifgen -liffil -lifos -lifgls
用 Client SDK 4.50+,老版本可能不支持新 glibc。
我可以给你精确的命令,只需要告诉我:
我可以直接帮你排错。