首頁  >  文章  >  運維  >  mingw編譯的能在linux下運作嗎

mingw編譯的能在linux下運作嗎

藏色散人
藏色散人原創
2023-03-24 11:00:012129瀏覽

mingw編譯的能在linux下運行,其編譯方法為:1、透過「sudo apt-get install mingw-w64」指令安裝mingw32;2、在linux上執行「sudo apt-get install wine -development wine ~/hello.exe >hello world」即可。

mingw編譯的能在linux下運作嗎

本教學操作環境:ubuntu18.04  系統、mingw32、Dell G3電腦。

mingw編譯的能在linux下運作嗎?

#能。

linux平台交叉編譯Windows 程式

編譯測試環境:ubuntu18.04  

 第一步:安裝mingw32

sudo apt-get install mingw-w64
sudo apt-get install mingw-w64-tools 
sudo apt-get install mingw-w64-i686-dev 
sudo apt-get install mingw-w64-x86-64-dev

上面這些可能會有重複的地方,為了省勁,直接都安裝了。

安裝完之後就可以編譯程式碼了

i686-w64-mingw32-gcc -o hello.exe hello.c

 

第二部分:測試編譯出來的程式

編譯出來的exe檔可以copy到windows上測試,不過為了省勁,我想直接在linux上執行。這樣就需要完整wine了。

sudo apt-get install wine-development
 
wine ~/hello.exe
 
>hello world

 

第三部:編譯64位元程式

因為本人需要編譯x64位元程序,但測試發現程式為32位元程式。

 

x86_64-w64-mingw32-gcc -o hello64.exe hello.c

 

第四部:在windows上使用pthread 函式庫

pthread真的很好用,windows預設沒有pthread函式庫。

i686-w64-mingw32-gcc -o pthread_create.exe pthread_create.c -lpthread -D__WIN32

竟然發現直接編譯過了,表示mingw32 已經把pthread函式庫包含進去了。

跑到windows上面執行,報"libwinpthread-1.dll .......... not found"

我直接將/usr/i686-w64-mingw32/ lib 資料夾下的libwinpthread-1.dll檔案複製到windows裡面。發現可以運行了。

夠簡單,夠粗暴吧?不過確實很爽

其實我windows下面也下載了pthread函式庫,可惜還是報找不到函式庫,可能是gcc不是隱含載入吧。

 

 

關於MinGW編譯程式出現缺少libgcc_s_dw2-1.dll問題

原來是連結時預設使用動態linking,對方的電腦無依賴的DLL模組。

於是我在連結後加入指令:

-static-libstdc++ -static-libgcc

相關推薦:《Linux影片教學

以上是mingw編譯的能在linux下運作嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn