簡體   English   中英

linux中的C編譯程序在那里運行但不在windows中

[英]C compiled program in linux run there but does not in windows

我是一個新的 C 語言學習者和設施。 我在我的 PC 上下載了 Ubuntu 20.04 LTS WSL,用於在gcc編譯代碼。 問題是,在 Ubuntu 中編譯的代碼運行良好,但是當我將其發送到 Windows 時,它說該程序無法運行,因為沒有與 x64 位 Windows 兼容的版本。 我用 -m64 標志編譯它以確保是 x64 位,但它仍然不能在 Windows 上運行。 這是什么原因?

二進制文件(編譯后的程序)旨在用於特定系統:當您在 Ubuntu 中安裝 gcc 時,它會自動默認為 gcc 的 Linux 版本,並且該版本只能創建Linux二進制文件。

正如 Linux 不能使用開箱即用的.exe文件一樣,Windows 也不能使用開箱即用的 Linux 二進制文件,這就是為什么你有“沒有與 x64 位 Windows 兼容的版本”的原因,這是因為你的文件重新嘗試使用兼容 x64 的Linux

知道這一點,有多種方法可以從這里前進:

  1. 安裝一個 windows 編譯器並使用 windows 來編譯和運行你的代碼
  2. 繼續使用 WSL2 來編譯和運行代碼
  3. 在 WSL 中安裝 Windows 編譯器,從 Ubuntu 構建,將文件復制到 Windows 並從那里執行
  4. 在你的 Windows 機器上安裝一個 Linux 編譯器,從那里構建它,將它復制到 WSL 並在 Ubuntu 上執行它
  5. 安裝 Linux 機器並使用它本地編譯和運行您的代碼

我可能會選擇 1 或 5,WSL2 是一個不錯的工具,但是由於您僅限於終端,因此它不是真正適合初學者的,我會選擇一個操作系統,在其上安裝一個適合初學者的 IDE(我從代碼開始::Blocks 10 年前,我認為它仍然是最適合初學者的 IDE)並且開始開發時不會增加 WSL 的復雜性,甚至更糟的是交叉編譯。

我建議最好在 Windows 系統上編譯你的 c 程序。 交叉編譯確實有效,但你說你是新手我建議在 Windows 系統上安裝 c 編譯器並本地編譯你的代碼

如何在 Linux 中編譯 C 代碼以在 Windows 上運行?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM