如何为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(比如
LoadLibrary、GetProcAddress)为Linux对应的函数(dlopen、dlsym,需要引入libdl.so库)。 - 检查导出函数的声明:Linux共享库的导出逻辑和Windows DLL略有差异,确保用
export关键字正确标记导出函数,或者通过.def文件定义。 - 修正路径、文件操作等平台相关代码(比如Windows用
\作为路径分隔符,Linux用/)。
- 替换Windows特有的API(比如
关键注意事项
- Delphi 10.2.3仅支持Linux 64位平台,无需考虑32位适配。
- 编译前务必确认Linux远程调试环境配置正确(包括SSH连接、SDK路径等,可在
Tools->Options->Deployment中设置)。 - 原DLL中依赖Windows的功能(比如注册表操作、COM组件)在Linux下没有直接替代API,需要重新实现或替换为跨平台方案(比如用FireMonkey的跨平台API)。
内容的提问来源于stack exchange,提问作者user9044066




