Windows 10 Anniversary Updateには、Ubuntu用のLinuxサブシステムが含まれています。 Sudo apt-get install gcc
でgccをインストールしました。
テスト用にいくつかの簡単なCコードを書きました。
#include <stdio.h>
int main(void){
printf("Hello\n");
return 0;
}
gcc -c main.c
でコンパイルしましたが、実行(Linuxのみ)main.o
が生成されます。 ./main.o
を実行すると、Hello
と表示されます。
私の質問は、Windowsで実行できるようにmain.c
をコンパイルするにはどうすればよいですか?基本的に、LinuxサブシステムでGCCを使用して*.exe
ファイルを生成するにはどうすればよいですか?
Linuxサブシステムは、Linuxコンピューターとして機能します。内部でLinux実行可能ファイルのみを実行でき、デフォルトのgcc
はLinux実行可能ファイルを作成します。
Windows実行可能ファイルを作成するには、mingwクロスコンパイラをインストールする必要があります。
Sudo apt-get install mingw-w64
次に、以下を使用して32ビットWindows実行可能ファイルを作成できます。
i686-w64-mingw32-gcc -o main32.exe main.c
64ビットWindows実行可能ファイル:
x86_64-w64-mingw32-gcc -o main64.exe main.c
これらのWindows実行可能ファイルはLinuxサブシステム内では機能せず、Linuxサブシステム外でのみ機能することに注意してください。
Linuxでgccを使用してコンパイルすると、PE(Windowsが理解する)ファイルではなくELFファイルが生成されます
Linux内のWindows用のプログラムをコンパイルするには、mingwを使用できます。