是否可以從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