2017-08-17 91 views
-2

如何使用C++編譯跨平臺可執行文件?如何使用C++編譯跨平臺可執行文件

我應該使用cpack還是docker?

似乎有很多依賴庫和硬件。

例如,我在我的計算機中編譯了一個可執行文件,並且我想在另一臺計算機上執行它。我把我的exec與opencv聯繫起來,並做了一些cuda編程。我可能想在Windows或Mac上執行我的程序。

而目標計算機可能具有不同的計算能力。

如何實現這一目標?

+0

交叉編譯通常取決於編譯器而不是編譯實用程序。例如,在我們的商店中,我們使用IAR編譯器爲ARM 9平臺(嵌入式系統)開發代碼。 GNU編譯器系列具有編譯器,可以爲其他平臺生成代碼。我們甚至有爲Windows和嵌入式系統編譯的通用源代碼。 –

+0

因此很難分發到不同的電腦上? – mxmxlwlw

+0

取決於你的「硬」的定義。在我的商店裏,我們使用IDE構建,然後使用JTAG調試器上載到嵌入式系統。不難。一些商店有Mac和Linux機器,並建立在這些機器上。再次,不難。有些人使用GNU編譯器的選項來指定不同的目標平臺,然後構建。不難。 –

回答

1

C++ 源代碼可以是跨平臺的,但編譯後的二進制文件非常多平臺特定的。要在Mac,Linux和Windows上運行該程序,您需要編譯3次 - 在每個不同的平臺上運行一次,然後分發3個不同的可執行文件(對於程序依賴的任何庫也是如此)。

+0

這是發佈源代碼而不是庫(尤其是* nix系列)的基礎。 –

+0

因此很難分發到不同的計算機上? – mxmxlwlw

+0

取決於您對* hard *的定義以及您想要如何分配。 –