【问题标题】:Natural sort from Lazarus in LinuxLinux 中 Lazarus 的自然排序
【发布时间】:2015-05-07 15:30:51
【问题描述】:

我在 Linux 中找到了 naturalstrcmp 函数,我认为这是我所需要的。如何在 Ubuntu、Debian 和 FreeBSD 中使用它的任何示例?我应该将其声明为外部吗?

编辑:我应该在我的外部声明中添加什么库名? 在我的 Debian 7.7 上,它位于 Alliance 软件包的 /usr/share/man/man3/naturalstrcmp.3.gz 上。

我试过了:

函数 naturalstrcmp(s, t: PChar): 整数;外部“联盟”名称“naturalstrcmp”;

没有成功。错误消息说“找不到 -lalliance”。

EDIT2:现在我知道 lib 文件位于 /usr/lib/alliance/,但不知道 lib 的名称。该目录中的所有文件都命名为 libAbc.so。

所以我尝试了:

函数 naturalstrcmp(s, t: PChar): 整数;外部“libMut.so”名称“naturalstrcmp”;

但是当我声明这个函数时,调试器会返回一个错误条件。

http://postimg.org/image/ty2kn3yvp/

【问题讨论】:

  • 回答您的问题:是的,您应该将任何外部函数声明为external(如果尚未在 RTL/FCL/LCL 中声明)。
  • 抱歉,我需要一个系统/语言感知功能。
  • 这样就够了吗?函数 naturalstrcmp(s1, s2 :string): 整数;外部名称 'naturalstrcmp';
  • 我找到了this page 关于naturalstrcmp 函数。我没有找到任何关于mut.h 的信息。所以我不能提供库名。您的声明必须是function naturalstrcmp(s, t: PChar): Integer; external 'dynlybname' name 'naturalstrcmp';,其中“dynlybname”是实现此功能的库名称。 Siple 测试是naturalstrcmp(PChar('a2'), PChar('a03'));

标签: ubuntu debian freebsd lazarus natural-sort


【解决方案1】:

似乎mut.h包含文件来自Alliance CAD软件(alternative link)。有各种 Linux 发行版的软件包,甚至还有 FreeBSD 端口(cad/alliance)。您可以尝试安装它,然后查看share/doc/alliance-5.0/ 以获取有关如何使用它并与之链接的进一步说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    相关资源
    最近更新 更多