似乎我无法找到如何在 64 位 slackware 系统上安装 lazarus 的方法。
我的目标是制作一个 64 位版本的 DLL(在 Linux 中为 .so),它是用 delphi 编写的。在 32 位系统中一切正常。我使用 Arch Linux 构建 32 位版本,并使用 1.0.2 Lazarus。我可以在 32 位 slackware 13.1 中毫无问题地使用 .so 文件。
以下是我迄今为止尝试过的:
成功安装 64 位版本的 fpc (v2.4.0)。
从 svn 下载了 Lazarus 的源代码。在行处svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus
编译失败,提示“expected := found in” 。 在 google 上未找到解决方案。for Node in Self do
avglvltree.pas
接下来:我找到了一些 Lazarus tar 文件 v0.9.30,并对其进行了提取make clean all
。
失败。某个文件的某行又出现了某种错误。
下一步:我找到了这个页面http://sourceforge.net/projects/lazarus/files/?source=navbar
通过进入“Lazarus Linux x86_64 RPM”链接下载了 fpc、fpc 源代码和 lazarus 1.0.4 软件包。
结果发现 RPM 属于另一个 Linux 发行版,所以installpkg
无法使用。Google 告诉我我可以使用另一个已经在 slackware 中的软件包管理器,所以我就这么做了,但随后它开始吐出所有的dependency missing
东西,我实在太累了,无法搜索关于它是什么以及我可以从哪里获得它的解释。每个软件包都导致更多错误。
有人可以一步一步地告诉我如何安装 lazarus 并编译我的 dll 吗?
我确信我做错了什么(我对 Linux 系统真的很陌生),但我不知道是什么,而且似乎没有任何指南告诉我。
答案1
解决方案看上去非常简单。
.rpm 文件取自SourceForge。
不要使用rpm -Uvh <rpm file>
,而需要使用rpm2tgz <rpm file>
命令。对所有 3 个包执行此操作会将 .rpm 转换为 .tgz。
接下来只需使用installpkg <tgz file>
命令逐个安装它们。这需要相当长的时间。
执行fpc -i
命令将显示支持的目标系统(以及其他信息),其中需要的是“Linux for x86-64”。
我在 Slackware 13.1 x64 上安装了 xfce 4 桌面管理器,因此我使用它来运行它startxfce4
。Lazarus 出现在“开发”菜单中。
打开 Lazarus 和库项目后,需要转到 项目 > 项目选项... > 编译器选项 > 代码生成。 在里面目标平台部分需要改变目标操作系统到Linux和目标CPU系列到x86_64. 此外编译器选项 > 其他,必须添加-fPIC到自定义选项字段。
保存并构建。生成的 .so 文件现在可以在 64 位 SlackWare 下使用。