「あなくつ」のおもちゃばこ

Blog

FreePascalでクロスコンパイル (再来)

いやぁ結局Linuxはダメだったんだけどね。書いておかないと忘れちゃうので。

Free Pascal Cross Compile (Win32 > Win64)

  • LazarusのWindows 64bit向けインストーラーをダウンロードしてインストール
  • [Lazarus Dir]\fpc\[FPC Ver]\bin\x86_64-win64\ppcx64.exeを適当に退避しておく。(実は欲しいのはこれだけ)
  • 64bitのLazarusはアンインストール
  • LazarusのWindows 32bit向けインストーラーをダウンロードしてインストール
  • [Lazarus Dir]\fpc\[FPC Ver]\bin\i386-win32へ上で退避したppcx64.exeをコピー
  • [Lazarus Dir]\fpc\[FPC Ver]\bin\i386-win32にPathを通す(このあたりは前回の試行錯誤と同じ)
  • FPCのソースをダウンロードして適当に展開
  • コンソールを起動し、展開したフォルダに入る
  • make clean
  • make all OS_TARGET=win64 CPU_TARGET=x86_64 FPC=ppcx64
  • make install OS_TARGET=win64 CPU_TARGET=x86_64 FPC=ppcx64 INSTALL_PREFIX=[Lazarus Dir]\fpc\[FPC Ver]\

これで32bit Windowsから64bitネイティブのコンソールアプリが作れる。やったね。

Lazarus Cross Compile (Win32 > Win64)

要領は同じ。

  • Lazarusのソースをダウンロードして適当に展開
  • コンソールを起動し、展開したフォルダに入る
  • make clean
  • make all OS_TARGET=win64 CPU_TARGET=x86_64 FPC=ppcx64
  • 展開フォルダ内の各所に生成されたx86_64-win64フォルダを、すでにインストールされているLazarusの対応する場所にコピー

これで32bitのLazarusからLCLを使った64bitアプリ(GUI含む)がコンパイルできる。ちなみに32bitデバッガからはデバッグ実行できないようなので、起動はエクスプローラから...。

とりあえずコンパイルして起動するところまでチェックしただけなので、エラーなく動作するかはナゾ。64bitでオペランドサイズが変わる変数形などもあると思うので、そのあたりは注意ですな。

Free Pascal Cross Compile (Win32 > Lin32)

32bit Windowsから32bit LinuxのFPCの準備は以前の通り。要領は同じですね。

Lazarus Cross Compile (Win32 > Lin32)

死亡。

32bit LinuxのLCLのコンパイルも再度挑戦してみたんだけど、やっぱりライブラリリンクのところで行き詰まり。っていうか、リンクしているライブラリが別のライブラリにリンクするときに絶対パスでリンクしているっぽいんですわ。ここまで出来ればWindowsで作成したGUIアプリもLinux用にコンパイル出来るかもしれないのになぁ。

Free Pascal Cross Compile (Win32 > Lin64)

コンパイル済みのx86_64-linux用binutilsがあれば64bit LinuxのFPCも作成できるんだけどなぁ。ネット上には転がっていないようだ。自分で作るにはCygwinとか使うらしく、なんだかんだで面倒そう。やめた。

参考にしたところ

タグ : 32bit,64bit,FreePascal,Lazarus,Linux,クロスコンパイル

2010/07/26 05:45:52 | Trackbacks (0) | Comments (0) | Technology

Trackback

URL : https://www.ana-kutsu.com/mt/mt-tb.cgi/557

Comment

(Private)
Authentication
refresh captcha

画像の中に見える文字を入力してください。

« ASADA! | Top | round($年齢) == 30 »

  • Top
  • Software
  • Blog
  • Laboratory
  • Profile
Search
Feeds of Blog
Archives

Copyright © 2004-2023 Ana-Kutsu All Rights Reserved.