在Linux上交叉編譯windows程式

2021-05-09 11:35:13 字數 1102 閱讀 5498

最近幾天搞 wxwidgets,由於要同時編譯應用程式的 windows 版本,又懶得在虛擬機器裡面編譯程式,於是想到用交叉編譯的方式在 linux 上編譯好 windows 版本的程式,再用 wine 或者虛擬機器來執行。試了一下,這種方法很好用,比在虛擬機器裡面編譯程式快很多。

我的作業系統是 debian sarge,其中已經有 mingw32 編譯器,只需安裝:

apt-get install mingw32這會安裝好 mingw32 交叉編譯系統,用 i586-mingw32msvc-gcc 即可為 windows 編譯程式。

在編譯 wxwidgets 的 windows 版本之前,需要安裝 directx 的標頭檔案。大概是由於版權之類的原因,在 debian 的 mingw32 中並未包含 directx 的標頭檔案,只包含了 directx 的庫,因此需要自己安裝。如果不安裝,在編譯 wxwidgets 的時候會有警告,並且系統不會產生 wxdisplay 這個類。安裝並不複雜,只要從網路上找到相關的標頭檔案和庫檔案,並解壓到 /usr/i586-mingw32msvc 目錄中即可。

./configure --host=i586-mingw32msvc --target=i586-mingw32msvc --prefix=~/workshop/mingw32 --enable-monolithic --disable-shared

make; make install-strip

make -c contrib; make -c contrib install-strip

編譯完成後,進入 samples 目錄,隨便找乙個例程 make 一下,便可產生 exe 檔案了。要執行這個檔案,需要 mingwm10.dll 這個檔案,在 debian 中,此檔案位於 /usr/share/doc/mingw32-runtime 目錄中,把它複製到當前目錄,便可用 wine 執行了。如果沒有問題,也可以把這個檔案仍到 wine 的 c:/windows/system32 目錄中。

下圖是在 wine 中執行程式的效果:

下圖是在 win4lin 中執行程式的效果:

ios10 1上 交叉編譯 boost1 64 0

以下內容儲存為 user config.jam 放在 boost 1 64 0 tools build src 下 然後在 boost 1 64 0根目錄開啟終端,輸入 bootstrap.sh,然後開始編譯 編譯模擬器版 bjam j16 with date time with filesyste...

QT在linux下的交叉編譯

第一步 安裝交叉編譯器 將arm linux gcc v6 vfp 20101103.tgz拷到到 opt下,然後輸入以下命令進行解壓 cd tar xvzf opt arm linux gcc v6 vfp 20101103.tgz 交叉編譯器會解壓到 opt friendlyarm toolsc...

在Linux下交叉編譯Android工具鏈

android ndk linux 64 bit x86 android ndk r9d linux x86 64.tar.bz2。解壓android ndk r9d linux x86 64.tar.bz2 到任意路徑 3.生成 toolchain 的文件可以參考 docs standalone ...