Gentoo LinuxでMingw

Gentoo LinuxでMingwを使ったクロスコンパイル

crossdevをインストール

# emerge -v sys-devel/crossdev

/etc/make.confにPORTDIR_OVERLAYを追加

PORTDIR_OVERLAY="/usr/local/portage"

/usr/local/portageがない場合はディレクトリを作成

# mkdir /usr/local/portage

i686-mingw32の環境を構築

# crossdev --stable --target i686-mingw32

動作確認

次のようなサンプルコードをビルドしてみます。

mingw-sample.c

#include <windows.h>

int main()
{
  MessageBox(NULL, "Hello world!", "Hello world!", MB_OK);
  return 0;
}

ビルドは次のようにします。

$ i686-mingw32-gcc -mwindows -o mingw-sample.exe mingw-sample.c
$ i686-mingw32-strip mingw-sample.exe

ビルドしたファイルはwineで実行可能です。

$ wine mingw-sample.exe

もちろん、Windows環境に持って言って実行することもできます。

mingw-sample.exeの実行結果

stripはなくてもかまいませんが、デバックに使われるデータを削除して、ファイルサイズを小さくしたい場合に使います。

関連記事

Gentoo LinuxでNTFSとexFATを使う手順
Gentoo LinuxでNTFSとexFATを使う手順について カーネルの準備 File systems ---> <*> FUSE (Filesystem in Userspace) support DOS/FAT/NT Filesystems ---> <*> NTFS file system support <*> NTFS ...

Gentoo LinuxでGRUBのタイムアウトを設定
Gentoo LinuxでGRUBのタイムアウトをデフォルトの5秒から変更したい場合は、/etc/default/grubのGRUB_TIMEOUT=5という部分を書き換えると良いようです。 # Boot the default entry this many seconds after the menu is displayed GRUB_TIMEOUT=10 #GRUB_TIMEOUT...

Gentoo Linuxの古いPORTAGEをダウンロードする方法
Gentoo Linuxの古いPORTAGEをダウンロードしたい場合は Index of /gentoo/releases/snapshots/current/squashfshttp://distfiles.gentoo.org/releases/snapshots/current/squashfs/ から毎月1日のスナップショットがダウンロードできるようになっています。 s...

Gentoo Linuxでインストールしたパッケージの一覧
Gentooでインストールしたパッケージの一覧を調べたい場合は、次のような場所を探してみると良いそうです。 emergeでインストールしたパッケージの一覧 /var/lib/portage/world --oneshotのオプションを付けてインストールした場合はリストに追加されないみたいです。 インストールしてあるパッケージの一覧 /var/db/pkgにあるディレ...

Gentoo LinuxのKernel Upgradeガイド
Gentoo LinuxのKernel Upgradeガイド(自分用メモ)です。 1. インストール # emerge --ask sys-kernel/gentoo-sources 2. eselect # eselect kernel list # eselect kernel set <target> 3. ビルド&インストール 注 # cd ...

Unsafe load call disabled by Gentoo
Gentoo Linux上でとあるPythonスクリプトを実行したところ Error: Unsafe load() call disabled by Gentoo. See bug #659348 のようなエラーで実行できなくなってしまいました。 以前は問題なく動いていたスクリプトです。ということで少し調べてみたところ、下の件が関係しているような感じです。 659...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です