delphi 是真正意义上的跨平台吗?

时间:2022-04-24 17:33:30
我只知道java是跨平台的,它针对不同的操作系统做不同的虚拟机,而我们的程序做好以后,可以运行在不同的操作系统上(安装相应的虚拟机),真正实现了跨平台。
  今天突然听朋友说delphi也支持跨平台,我一下傻眼了。真的支持吗???我做的一个vcl工程可以直接运行在linux上吗?不可能吧,里面处理了那么多消息事件了什么的,用了好多windows API啊。

  请高手说一下,是否用delphi做的程序真正跨平台,谢谢!

37 个解决方案

#1


我也不懂…

#2


Delphi做的程序不能跨平台.

#3


看了我朋友说错了

#4


可以使用Kylix

#5


目前delphi/kylix支持windows和linux,不过linux下不能用vcl,可以用clx组件,linux下的工具叫kylix,不叫delphi。

#6


看来想跨平台,只能用java了。

#7


如果Delphi能够跨平台 就没有那么的人去高c#了

#8


Borland新一代dbExpress提供了跨平台、高效率的数据引擎,那这个其不是没什么用

#9


引用 7 楼 jerry8 的回复:
Borland新一代dbExpress提供了跨平台、高效率的数据引擎,那这个其不是没什么用

dbExpress是支持跨平台,只是指的它的架构设计,支持跨平台,或者说不象ADO和BDE那样受平台的约束.

#10


看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

#11


引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

如果写代码的时候有考虑兼容性,那么可以直接把代码拿到另一个平台下重新编译即可.

#12


引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

你如过在delphi中尊守跨平台原则(比如用clx代替vcl),那么delphi的程序在kylix中编译一下,就可以用的,不用重新做。

#13


kylix,好像现在不开发了,没有新版本了,现在也不好找了

#14


如果想做跨平台应用,就用JAVA吧,别的都是假的

#15


不是

delphi的代码也许可以在linux下编译,但是delphi编译出的东西绝对不是跨平台的

java号称一次编译,到处运行

delphi做不到

#16


不是

#17


用Kylix吧。。。

#18


引用 10 楼 unsigned 的回复:
引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。 
 
如果写代码的时候有考虑兼容性,那么可以直接把代码拿到另一个平台下重新编译即可.


请问unsigned ,怎么考虑兼容性呢,能举个例子吗?

#19


聽說是可以跨平台,到底行不行我就不知道

#20


引用 2 楼 unsigned 的回复:
Delphi做的程序不能跨平台.

#21


不能二进制跨平台,但是源代码是可能的(win32/.net/linux)。

#22


的确,现在Kylix要被Lazarus替代了。

#23


引用 20 楼 DelphiGuy 的回复:
不能二进制跨平台,但是源代码是可能的(win32/.net/linux)。 

对。源代码级别的跨平台就可以了,只需要换一个平台的编译器编译下就行了。

#24


那要说的代码能跨平台的话,C还能呢。
PHP还能呢

#25


是啊,要想真的能跨平台,只有java一个了

#26


C当然能,PHP更能。但是我们一般只能说“C语言是跨平台的”,而不能说某个C语言产品(比如Turbo C)是跨平台的,后者要求的条件要比前者高很多。
而Delphi作为一个产品,已经具备跨平台的基本特征,多平台编译器、大致上平台无关的库(VCL)、少量修改源代码即可生成其他平台上的应用。

#27


继续等

#28


Delphi不是的~但Pascal是跨平台的
通常是FreePascal

#29


源代码级别的跨平台是可以的,但不同的平台要用相应的编译器重新编译
Java是运行时才编译,所以它可以跨平台,它自动完成了我们在不同的平台下的编译工作
delphi按兼容跨平台原则写的源代码(clx替换vcl),就可以在linux下编译运行了

#30


跨平台?我们真的十分需要吗?简单,满足需求就好,D7挺好,一直在用

#31


java跨平台你也要装不同平台的虚拟机,而且java有个方式来生成目标程序:第一种直接生成机器码,这个就不能跨平台。第二种先编译成.class的字节码文件然后在有jvm来解释执行。这样的class文件可以实现跨平台。

#32


引用 16 楼 chenyq2008 的回复:
用Kylix吧。。。

你是让我用Kylix开发吗?这个不是只能在linux下用吗

#33


FreePascal !! Lazarus!!!

#34


看笑话

#35


引用 14 楼 try__again 的回复:
不是 

delphi的代码也许可以在linux下编译,但是delphi编译出的东西绝对不是跨平台的 

java号称一次编译,到处运行 

delphi做不到

java还号称一次编译,处处有问题.

java目前还不能跨DOS平台 

#36


Java也是假的呀。也是在上面搞了个虚拟机

#37


引用 35 楼 sjj108 的回复:
Java也是假的呀。也是在上面搞了个虚拟机

好意思挑刺啊?java已经很不错了,不管怎么做总之满足了我们的需求。目前其他的有能和它比的吗?你真是好意思挑刺啊,o(∩_∩)o...哈哈!

#1


我也不懂…

#2


Delphi做的程序不能跨平台.

#3


看了我朋友说错了

#4


可以使用Kylix

#5


目前delphi/kylix支持windows和linux,不过linux下不能用vcl,可以用clx组件,linux下的工具叫kylix,不叫delphi。

#6


看来想跨平台,只能用java了。

#7


如果Delphi能够跨平台 就没有那么的人去高c#了

#8


Borland新一代dbExpress提供了跨平台、高效率的数据引擎,那这个其不是没什么用

#9


引用 7 楼 jerry8 的回复:
Borland新一代dbExpress提供了跨平台、高效率的数据引擎,那这个其不是没什么用

dbExpress是支持跨平台,只是指的它的架构设计,支持跨平台,或者说不象ADO和BDE那样受平台的约束.

#10


看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

#11


引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

如果写代码的时候有考虑兼容性,那么可以直接把代码拿到另一个平台下重新编译即可.

#12


引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。

你如过在delphi中尊守跨平台原则(比如用clx代替vcl),那么delphi的程序在kylix中编译一下,就可以用的,不用重新做。

#13


kylix,好像现在不开发了,没有新版本了,现在也不好找了

#14


如果想做跨平台应用,就用JAVA吧,别的都是假的

#15


不是

delphi的代码也许可以在linux下编译,但是delphi编译出的东西绝对不是跨平台的

java号称一次编译,到处运行

delphi做不到

#16


不是

#17


用Kylix吧。。。

#18


引用 10 楼 unsigned 的回复:
引用 9 楼 jianfengqu 的回复:
看来是这样的:同样是borland的产品,delphi是针对windows的,kylix是针对linux的。是不同操作系统下的不同开发工具,不是说用一个开发出来以后就是可以跨平台的。 
 
如果写代码的时候有考虑兼容性,那么可以直接把代码拿到另一个平台下重新编译即可.


请问unsigned ,怎么考虑兼容性呢,能举个例子吗?

#19


聽說是可以跨平台,到底行不行我就不知道

#20


引用 2 楼 unsigned 的回复:
Delphi做的程序不能跨平台.

#21


不能二进制跨平台,但是源代码是可能的(win32/.net/linux)。

#22


的确,现在Kylix要被Lazarus替代了。

#23


引用 20 楼 DelphiGuy 的回复:
不能二进制跨平台,但是源代码是可能的(win32/.net/linux)。 

对。源代码级别的跨平台就可以了,只需要换一个平台的编译器编译下就行了。

#24


那要说的代码能跨平台的话,C还能呢。
PHP还能呢

#25


是啊,要想真的能跨平台,只有java一个了

#26


C当然能,PHP更能。但是我们一般只能说“C语言是跨平台的”,而不能说某个C语言产品(比如Turbo C)是跨平台的,后者要求的条件要比前者高很多。
而Delphi作为一个产品,已经具备跨平台的基本特征,多平台编译器、大致上平台无关的库(VCL)、少量修改源代码即可生成其他平台上的应用。

#27


继续等

#28


Delphi不是的~但Pascal是跨平台的
通常是FreePascal

#29


源代码级别的跨平台是可以的,但不同的平台要用相应的编译器重新编译
Java是运行时才编译,所以它可以跨平台,它自动完成了我们在不同的平台下的编译工作
delphi按兼容跨平台原则写的源代码(clx替换vcl),就可以在linux下编译运行了

#30


跨平台?我们真的十分需要吗?简单,满足需求就好,D7挺好,一直在用

#31


java跨平台你也要装不同平台的虚拟机,而且java有个方式来生成目标程序:第一种直接生成机器码,这个就不能跨平台。第二种先编译成.class的字节码文件然后在有jvm来解释执行。这样的class文件可以实现跨平台。

#32


引用 16 楼 chenyq2008 的回复:
用Kylix吧。。。

你是让我用Kylix开发吗?这个不是只能在linux下用吗

#33


FreePascal !! Lazarus!!!

#34


看笑话

#35


引用 14 楼 try__again 的回复:
不是 

delphi的代码也许可以在linux下编译,但是delphi编译出的东西绝对不是跨平台的 

java号称一次编译,到处运行 

delphi做不到

java还号称一次编译,处处有问题.

java目前还不能跨DOS平台 

#36


Java也是假的呀。也是在上面搞了个虚拟机

#37


引用 35 楼 sjj108 的回复:
Java也是假的呀。也是在上面搞了个虚拟机

好意思挑刺啊?java已经很不错了,不管怎么做总之满足了我们的需求。目前其他的有能和它比的吗?你真是好意思挑刺啊,o(∩_∩)o...哈哈!