用 Kylix 进行 Linux 应用开发的常见问题及解决

据我所知,目前在 Linux 下进行开发的人,绝大多数是用 C++ 的, 他们对用 Object Pascal 的 Kylix 的兴趣通常没有在 Windows 下用 Delphi 进行开发的人大,虽然 Borland 两年前在网上做过调查 (那时我也参加了)后才做了 Kylix ,但我估计那时参与调查的人多数都是 Windows 平台下的开发人员吧。 正因为用 Kylix 的多数是原来在 Windows 平台下做开发的人,所以一般对 Linux 不是太熟,比如我就是, 也就总会碰到各种各样的问题,我把这些问题收集了一下写了这个东东。这里只有开发过程中碰到的问题,关于 Kylix 安装的问题参见 《我的 Kylix 完全安装手册》 《Kylix 安装错误解答 -- 作者:woolgate》 两篇文章。这个东东将不断更新。

  • 脱离 Kylix 环境运行程序
  • Kylix 开发后的程序无法正常脱离 IDE 运行,这是因为它用到 CLX 的两个动态链接库(在 /opt/kylix/bin 目录中, /opt/kylix 是我的 Kylix 安装路径,所以下面以此为例,如果你的安装路径与我不同,相应修改它)。 而默认情况下是不会自动把查找路径加入的( Kylix 只在运行时将路径加到环境变量里, 详见 Kylix 菜单中的 Environment Options )。所以只有手动加入了:
    LD_LIBRARY_PATH=/opt/kylix/bin:$LD_LIBRARY_PATH
    用上面的语句可以将其加入到查找路径中,另外就是最好把 PATH 也添上:
    PATH=/opt/kylix/bin:/opt/kylix/lib:/opt/kylix/help:$PATH
    其中 /opt/kylix/help 不是必须的,但在 Kylix 的 EnvOptions 里有,所以最好加上。另外, 在 /opt/kylix/bin 目录下有一个叫 kylixpath 的脚本文件,运行它就可以将路径全部设置好,
    source /opt/kylix/bin/kylixpath
    也可以把它加到 .profile 或 .bashrc 中。我是修改了 /etc/profile 文件(RedHat 7 )的:
    将 PATH 一句改为:PATH=/opt/kylix/bin:/opt/kylix/lib:/opt/kylix/help:$PATH
    然后在之后加一句: export LD_LIBRARY_PATH=/opt/kylix/bin
    注意:在 Linux 中大小写是有别的, PATH 不可以写成 path !另外还有就是编辑 ld.so.conf 加入 /opt/kylix/bin 也是不行, 一定要更改 LD_LIBRARY_PATH 才行。

    如果出现这个错误信息:
    "error while loading shared libraries: libqtintf.so: cannot load shared object file: No such file or directory"
    是因为找不到 QT 的共享对象文件(相当于 Windows 下在动态链接库 DLL )造成的。确定你的机器上能找到 libqtintf.so 文件, 一般在 /lib 目录下,如果不在则需要在 /lib 目录下建立一个 Symbolink :
    ln -s /相应路径/libqtintf.so /lib/libqtintf.so

  • 用 SQLConnection 连接 InterBase 出现 "Unable to load libgds.so.0" 错误的问题
  • 首先确定你能在 InterBase 的安装路径中找到 libgds.so 文件(或类似的 libgds.so.1 等),并且它所在的目录在 LD_LIBRARY_PATH 中。如果满足上述条件还出此错误则需要检查 /lib 目录下的 libcrypt.so.0 文件,因为 libgds.so 文件需要它。 如果 /lib 目录下没有 libcrypt.so.0 的话看看是否有 libcrypt*.so 文件,这个文件名一般是带有一个版本号的,建立一个 Symbolink :
    ln -s /lib/libcrypt...... /lib/libcrypt.so.0

  • 配置目录为可执行 CGI
  • 其实这个问题与 Kylix 无关,它属于 Apache 配置的问题,不过在用 Kylix 写 CGI 程序时可能会碰到,所以也说一下吧。
    首先是修改 /etc/httpd/conf/httpd.conf 文件,在其中加入一行:
    ScriptAlias /kylix-cgi/ "/home/raptor/kylix/"
    其中 /kylix-cgi/ 是要建立的虚拟目录名, /home/raptor/kylix/ 是我要设置为执行 CGI 的目录,相应改为你的目录即可。 修改完设置后要重启 Apache Web Server :
    service httpd restart
    但有时这样设置也不行,那是因为 /home/raptor/kylix 目录的权限不够,需要设置相应的权限,这一点与 Windows 不同, Linux 对文件系统的安全性要求要高一些 :
    chmod 0755 /home/raptor/kylix

  • 在 CGI 中使用 SQLConnection 连接 InterBase 出现 "Unable to load libsqlib.so.1" 错误的问题
  • 这也是一个跟查找路径有关的问题,修改 /etc/httpd/conf/httpd.conf 文件,在其中加入:
    SetEnv LD_LIBRARY_PATH /opt/kylix/bin
    这里假设 libsqlib.so.1 文件在 /opt/kylix/bin 目录下


只完成Kylix3-Delphi,并且未解决调试问题。Kylix3-BCB问题还未解决。

– 《猛禽-Ubuntu 5.1下安装Kylix3》 at 2006-03-20T17:17:00+08:00