You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何为Delphi现有WIN64 DLL添加LINUX 64 BIT平台支持?

解决Delphi 10.2.3中WIN64 DLL项目添加Linux 64平台的问题

我之前也碰到过一模一样的情况——Delphi 10.2.3对Linux平台的支持确实存在模板层面的限制,尤其是DLL这类项目默认不会显示Linux 64选项。下面是我亲测有效的两种解决思路:

方法一:手动编辑项目文件(最直接)

Delphi的.dproj项目文件本质是XML格式,我们可以直接手动添加Linux 64平台的配置:

  • 先关闭当前的DLL项目,找到项目对应的.dproj文件,用文本编辑器(比如VS Code、Notepad++或者Delphi自带的编辑器)打开。
  • 在文件开头的<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">节点下,找到<Platforms>区块,它通常长这样:
    <Platforms>
      <Platform value="Win64"/>
    </Platforms>
    
  • 手动添加Linux 64的平台条目,修改后变成:
    <Platforms>
      <Platform value="Win64"/>
      <Platform value="Linux64"/>
    </Platforms>
    
  • 保存文件后重新用Delphi打开项目,此时你就能在项目管理器的平台列表里看到Linux 64选项了。

方法二:新建Linux共享库项目迁移代码

如果觉得编辑XML文件太麻烦,也可以通过新建项目的方式迁移:

  • 打开Delphi,新建一个Linux 64位共享库项目(注意Linux下没有DLL的概念,对应的是Shared Library)。
  • 将原WIN64 DLL项目里的所有单元文件、资源文件等,全部添加到这个新的共享库项目中。
  • 针对性调整代码:
    • 替换Windows特有的API(比如LoadLibraryGetProcAddress)为Linux对应的函数(dlopendlsym,需要引入libdl.so库)。
    • 检查导出函数的声明:Linux共享库的导出逻辑和Windows DLL略有差异,确保用export关键字正确标记导出函数,或者通过.def文件定义。
    • 修正路径、文件操作等平台相关代码(比如Windows用\作为路径分隔符,Linux用/)。

关键注意事项

  • Delphi 10.2.3仅支持Linux 64位平台,无需考虑32位适配。
  • 编译前务必确认Linux远程调试环境配置正确(包括SSH连接、SDK路径等,可在Tools->Options->Deployment中设置)。
  • 原DLL中依赖Windows的功能(比如注册表操作、COM组件)在Linux下没有直接替代API,需要重新实现或替换为跨平台方案(比如用FireMonkey的跨平台API)。

内容的提问来源于stack exchange,提问作者user9044066

火山引擎 最新活动