5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SublimeText2でOpenFLを含むHaxeのコンパイル

Last updated at Posted at 2014-03-23

何があった

SublimeText2でOpenFLを含むHaxeのコードを書いてたところ、SublimeText2上でのビルドが通らなくて泣いた。

何がしたかった

ちゃんとしたビルドはlimeを通すんですが、コンパイルエラーが無いかチェックしたいためにビルドしたいのです。

build.hxmlにどう書いたら良いねん

1回目

とりあえず、まずやりたい事をbuild.hxmlに書いてみる。

build.hxml
-cp Source
-main CompileOnly
--no-output
-cpp No output

で、ビルド

You cannot access the flash package while targeting cpp (for flash.media.Sound)

駄目でした。

2回目

まあ、libの設定しないと駄目だよね、HAHAHAHA。ってことで。

build.hxml
-cp Source
-main CompileOnly
--no-output
-lib lime
-lib openfl
-lib openfl-native
-lib actuate
-cpp No output

で、ビルド

You cannot access the flash package while targeting cpp (for flash.media.Sound)

あれ?なんで?

3度目の正直

情報探すと、それっぽい答えを発見。

どうやら、Haxeが最初から持ってるFlashのパッケージが同じ名前で、そいつがFlash出力しか許可してないためっぽい。

で、それを回避するのにallowPackageでパッケージの使用を許可させる必要があると。

で、最終的に。

build.hxml
-cp Source
-main CompileOnly
--no-output
-lib lime
-lib openfl
-lib openfl-native
-lib actuate
--macro allowPackage("flash")
-cpp No output

これで、通りました。

OpenFLのバージョンアップでやり方が変わりました

OpenFLのバージョンアップに伴いパッケージ構成が変わったので以前のやり方では上手く出来なくなっています。

最新版のOpenFLを使う場合は次のようにしましょう。

ちなみに、CompileOnlyはstatic mainを定義し、対象ソースをインポートしたダミーファイルになります。

build.hxml
-cp Source
-main CompileOnly
--no-output
-lib openfl
--macro openfl.Lib.includeBackend("native")
--remap flash:openfl
-cpp No output
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?