web-dev-qa-db-ja.com

Linux上のgcc / g ++でWindows用にコンパイルする方法は?

Linuxでfreeglutを使用してC++(g ++)でいくつかの効果を記述し、それらをコンパイルします。

g++ -Wall -lglut part8.cpp -o part8

だから、必要なものがすべて含まれている静的にコンパイルされたWindows実行可能ファイルをg ++で作成できるかどうか疑問に思っていましたか?

私はWindowsを持っていないので、Linuxでそれができたら本当にクールだと思います:)

93
Louise

mingw32は、Linux用のパッケージとして存在します。 Windowsアプリケーションをクロスコンパイルおよびリンクできます。チュートリアルがあります ここCode :: Blocksフォーラム 。たとえば、コマンドがx86_64-w64-mingw32-gcc-win32に変更されることに注意してください。

たとえば、UbuntuのリポジトリにはMinGWがあります。

$ apt-cache search mingw
[...]
g++-mingw-w64 - GNU C++ compiler for MinGW-w64
gcc-mingw-w64 - GNU C compiler for MinGW-w64
mingw-w64 - Development environment targeting 32- and 64-bit Windows
[...]
76
AndiDog

LinuxでWindows用にコンパイルする1つのオプションは、mingwを使用することです。非常に役立つチュートリアルを見つけました こちら

Debianベースのシステムにmingw32をインストールするには、次のコマンドを実行します。
Sudo apt-get install mingw32 mingw32-binutils mingw32-runtime

コードをコンパイルするには、次のようなものを使用できます。
i586-mingw32msvc-g++ -o myApp.exe myApp.cpp

Linuxで新しいWindowsアプリケーションを直接テストしたい場合があります。そのためにワインを使用できますが、ワインにはバグがある可能性があることに常に留意してください。これは、wine、プログラム、またはその両方にバグがあるかどうかわからない可能性があるため、一般的なテストにのみwineを使用することを意味します。

Wineをインストールするには、次を実行:
Sudo apt-get install wine

26

推奨される方法は、Ubuntu 16.04でエラーになりました: E:パッケージmingw32が見つかりません

================================================== =========================

このパッケージをUbuntuにインストールするには、次を使用してください。

Sudo apt-get install mingw-w64

インストール後に使用できます:

x86_64-w64-mingw32-g++

ご注意ください!

64ビット使用の場合:x86_64-w64-mingw32-gc ++

32ビット使用の場合:i686-w64-mingw32-g ++

14
0x8BADF00D

パッケージマネージャーからmingw64などのクロスコンパイラーをインストールします。次に、次の方法でコンパイルします。単にgccを呼び出す代わりに、32ビットWindowsの場合はi686-w64-mingw32-gccを、64ビットWindowsの場合はx86_64-w64-mingw32-gcc"を呼び出します。ターゲットシステムにすべてのライブラリがない可能性があるため、--staticオプションも使用します。

Fortranなどの他の言語をコンパイルする場合は、前のコマンドで-gcc-gfortranに置き換えます。

13
Pedro Miranda

Linuxでmingwを使用してCでWindows実行可能ファイルを作成しましたが、C++でも同様に機能すると思われます。

Clangなどをクロスコンパイラツールチェーンとしてパッケージ化するプロジェクト、ELLCCがあります。これを使用して、clang(C++)、binutils、およびGDB for Windowsをコンパイルします。いくつかのLinuxホスト用にプリコンパイルされたバイナリについては、 ellcc.org のダウンロードリンクに従ってください。

5

From: https://fedoraproject.org/wiki/MinGW/Tutorial

Fedora 17では、win32およびwin64ターゲット用のバイナリを簡単にビルド(クロスコンパイル)できます。これは、mingw-w64ツールチェーンを使用して実現されます: http://mingw-w64.sf.net/ 。このツールチェーンを使用すると、C、C++、Objective-C、Objective-C++、およびFortranのプログラミング言語のバイナリを構築できます。

「Windowsクロスコンパイラを使用するためのヒントとコツ」: https://fedoraproject.org/wiki/MinGW/Tips

4
iljau

fedoraの場合

Sudo yum groupinstall -y "MinGW cross-compiler"
1
scavenger