是否可以从OS X计算机编译swift二进制文件,使其在运行Linux的服务器上作为单个二进制文件运行,而不需要额外的库需要动态链接?快速交叉编译为单个linux二进制
我在想像传递一个-target
到swift命令并传递另一个参数让它静态链接所有的依赖关系,但我不知道确切的命令是什么。
-target
的确切值似乎相当难以捉摸。
我是否需要知道确切的目标分布才能将正确的字符串传递给-target
参数?
是否可以从OS X计算机编译swift二进制文件,使其在运行Linux的服务器上作为单个二进制文件运行,而不需要额外的库需要动态链接?快速交叉编译为单个linux二进制
我在想像传递一个-target
到swift命令并传递另一个参数让它静态链接所有的依赖关系,但我不知道确切的命令是什么。
-target
的确切值似乎相当难以捉摸。
我是否需要知道确切的目标分布才能将正确的字符串传递给-target
参数?
从阅读github
这得到由初级build script
叫这怎么过答案的一部分的问题
-target的确切值似乎相当难以捉摸。
为Mac OSX安装GCC工具链,可以重定向Linux,我可以看到的一个回购是OSXCross。
在运行引用该工具链的脚本之前,将值提供给GCC的环境变量。
不幸的是,这并不能保证它能正常工作,但试试看看会发生什么。
谢谢OP。 :) – t0mm13b
是否可以从OS X计算机上编译swift二进制文件,以便它可以在运行Linux的服务器上作为单个二进制文件运行,而不需要额外的库需要动态链接?
简短的回答?当然如此!任何事情都是可能的,当你放下心扉时!
效率高吗?本质上,没有。
虽然我相信在座的各位是熟悉的编译器做什么,对这个问题的目的和其最新的用户,编译器是一种将人类可读的代码,并将其映射到一个二进制格式的应用一台电脑可以理解。但值得一提的是,并非所有的计算机都是一样的。每个计算机操作系统都有不同的二进制映射,因此像复制值这样的简单操作可以在一台机器上表示为1010,在另一台机器上表示为0101。正如在许多问题事先如前所述,and for example this one,很多编程语言都可建在各种机器,但他们很少有碰到他们便携式因为每台计算机都有一个不同的二进制映射。
~~~~~~~ 那么我们如何解决这个问题呢? ~~~~~~~
早些时候你说过你曾经听过有人谈论过在Linux机器上编译windows程序。 Cygwin是一个开发平台,旨在获得通常不在linux机器上的windows框架,并允许用windows框架构建许多程序。然而,它所做的只是添加二进制文件,以便在配置中找到仅限windows命令时,编译器具有一些适当的映射位置。它所做的全部工作都是介绍程序成功移植所需的二进制配置。这关系到第二个选项。
即使这样,像这样的系统是寥寥可数,以及是否其保证的工作依赖于编译器的维护者如何知道自己的东西,怎么他们经常更新等等,等等,他们甚至执行的机会首先解决二进制文件的映射并不是我想要的。
泊坞窗提供容器容器通信,应用实例一个有趣的框架,并有一个相当简单的文档,这将是值得期待的,看看你的项目可能有它的一些部件移植到泊坞窗。
这就是说,有多种方法可以解决您当前面临的问题,因此当您成为一名软件工程师时,您将以何种方式处理您的项目是最理想的方式。
// //编辑
将编辑这是一个更好的响应一次,林不落累得要死。
Cygwin不适用于Windows上的Windows应用程序,它适用于Windows上的Linux应用程序(btw感谢链接,所以我不必使用Google;)) – Markaos
此外,服务器可能不使用Swift的部分, t在Linux上可用(像GUI库,我猜),所以它应该是有效的 – Markaos
@Markaos我知道它不是什么cygwin的。我指的是这样一个事实,即它添加了您从编码的角度来看需要的二进制文件,您无法在其他地方接收这些二进制文件。如果你是一个在linux上工作的C++编码器,并且你希望你的应用在windows上运行,那么你需要一些二进制包,Windows和Linux都没有。我在cygwin的印象下解决了这个问题。我所指的效率就是在内存,时间和复杂性方面做出原始问题所需的解决方法。 – Jouster500
也许我误解了你的问题,但是linux二进制(elf)和mac二进制(mach-o)[不兼容](https://stackoverflow.com/questions/9439436/is-a-linux-executable-兼容-与-OS-X)。 – TheDarkKnight
是的,显然他们不是。交叉编译意味着从一个os编译到不同的目标os。例如,工作形式为一个linux盒子,并编译为一个Windows兼容的exe。我以前没做过,但我看到有人谈论做这种事情,所以我认为这是可能的。 – hasen
我并不认为这在OS X上与本机Apple编译器是可能的,但会感兴趣地观看这个问题。 – TheDarkKnight