Haxe ohjelmointikieli asennus Linuxiin

xet7.org Suomeksi > Haxe ohjelmointikieli asennus Linuxiin

12.7.2014 Ohjeen kirjoituksen jatkaminen.

11.7.2014 Tehty asennus.

Haxe ( http://haxe.org ) on ohjelmointikieli, jolla voi Haxe-kielen muuttaa usealle muulle ohjelmointikielelle, kuten C++, PHP, Python, Javascript, Java ja Flash/ActionScript.

Tässä asennetaan se Linux Mint 16:sta 64bit versioon (testaan 17:sta asennusta myöhemmin).

Vanhoilla Haxe sivuilla on asennusta helpottava skripti jota ei ole vielä siirretty uusille sivuille:

http://old.haxe.org/download

eli suora linkki: http://www.openfl.org/builds/haxe/haxe-3.1.3-linux-installer.tar.gz

Pura paketti ja suorita se näin:

chmod +x install-haxe.sh

sudo install-haxe.sh

Ja vastaile asennuskysymyksiin kyllä (yes) jne.

Sen jälkeen imuroi uusin nightly build haxesta, jossa on lisätty Python tuki: http://hxbuilds.s3-website-us-east-1.amazonaws.com/builds/haxe/linux64/haxe_latest.tar.gz

Muita buildeja löytyy osoitteesta http://builds.haxe.org

Pura haxe_latest.tar.gz ja nimeä kansio haxe-3.1.3 nimelle haxe, ja siirrä se se sitten paikoilleen:

sudo rm -rf /usr/lib/haxe

sudo mv haxe /usr/lib/

cd /usr/lib

sudo chown root:root haxe -R

Sitten asenna lisäkirjastot:

sudo haxelib setup

- paina enteriä oletushakemistoksi /usr/lib/haxe/lib

sudo haxelib install hxcpp

sudo haxelib install hxjava

sudo haxelib install hxcs

Tarvitsemme vielä lisäpaketteja C++ (cpp) käännöstä varten:

asm/errno.h virheen korjataksemme

(lähde: http://stackoverflow.com/questions/14795608/asm-errno-h-no-such-file-or-directory )

kirjoita:

sudo apt-get install linux-libc-dev:i386 libc6-dev-i386

bits/c++config.h virheen korjataksemme

(lähde: http://stackoverflow.com/questions/4643197/missing-include-bits-cconfig-h-when-cross-compiling-64-bit-program-on-32-bit )

kirjoita:

sudo apt-get install gcc-4.8-multilib g++-4.8-multilib

Tee sitten kotikansioosi hakemisto esim:

mkdir haxetest

cd haxetest

Lisää sinne esimerkki tekstitiedosto HelloWorld.hx haluamallasi tekstieditorilla (nano, vim, emacs, pluma, gedit, kate jne):

class HelloWorld {

static public function main() {

trace("Hyvää päivää.");

}

}

Käytä tabulaattoreita sisennykseen.

Käännä se sitten eri ohjelmointikielille. Haxe lisää koodiin myös omia apufunktioitaan lisätoimintojen toteuttamiseksi ja tarvittaessa tekee alihakemiston, jos tuloksena on useampi kuin yksi tiedosto.

1) C++:

haxe -main HelloWorld -cpp HelloWorld.cpp

cd HelloWorld.cpp

./HelloWorld (suoritettavan tiedoston ajaminen)

2) Python:

haxe -main HelloWorld -python HelloWorld.py

python HelloWorld.py (suoritettavan tiedoston ajaminen)

3) Javascript, ja testaus node.js:llä:

haxe -main HelloWorld -js HelloWorld.js

sudo apt-add-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs

node HelloWorld.js

4) Java:

haxe -main HelloWorld -java HelloWorld.java

cd HelloWorld.java

java -jar HelloWorld.jar (suoritettavan tiedoston ajaminen)

5) C#:

haxe -main HelloWorld -cs HelloWorld.cs

cd HelloWorld.cs/bin

sudo apt-get install mono-complete (tämä asentaa Mono-ohjelmointikielen useampine paketteineen)

mono HelloWorld.exe (tämä käynnistää Monolla C# pohjaisen suoritettavan tiedoston)

6) PHP:

haxe -main HelloWorld -php HelloWorld.php

cd HelloWorld.php

sudo apt-get install php5-cli

php index.php

7) SWF (Flash):

haxe -main HelloWorld -swf HelloWorld.swf

- Vedä HelloWorld.swf-tiedosto tiedostonhallinnasta www-selainikkunan päälle, testi näkyy jos selaimessa on Flash-tuki.

8) ActionScript (Flash lähdekoodia varten):

haxe -main HelloWorld -as3 HelloWorld.as3

cd HelloWorld.as3

... ?

9) Neko (bytecode):

haxe -main HelloWorld -neko HelloWorld.n

neko HelloWorld.n

10) NME josta esim. Android käyttäen Googlen natiivi development kittiä:

(lähde: http://www.openfl.org/archive/community/bugs/uncaught-exception-loadc393-invalid-module-runn/ )

sudo haxelib install nme

sudo haxelib run nme setup

nme build HelloWorld.hx android

https://developer.android.com/tools/sdk/ndk/index.html josta esim:

cd

mkdir SDKs

cd SDKs

wget http://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2

......

- pura paketti SDKs hakemistoon. Tällä hetkellä komento:

cd ~/haxetest

nme build HelloWorld.hx android

pysähtyy tällaiseen virheeseen:

Error: In file included from ./src/nme/utils/Endian.cpp:4:0:

include/nme/utils/Endian.h:28:3: error: 'HX_DO_RTTI_ALL' does not name a type

./src/nme/utils/Endian.cpp: In function 'void nme::utils::sMarkStatics(hx::MarkContext*)':

./src/nme/utils/Endian.cpp:41:2: error: '__mClass' is not a member of 'nme::utils::Endian_obj'

./src/nme/utils/Endian.cpp: In function 'void nme::utils::sVisitStatics(hx::VisitContext*)':

./src/nme/utils/Endian.cpp:48:2: error: '__mClass' is not a member of 'nme::utils::Endian_obj'

./src/nme/utils/Endian.cpp: At global scope:

./src/nme/utils/Endian.cpp:55:19: error: 'Class nme::utils::Endian_obj::__mClass' is not a static member of 'class nme::utils::Endian_obj'

./src/nme/utils/Endian.cpp: In static member function 'static void nme::utils::Endian_obj::__register()':

./src/nme/utils/Endian.cpp:64:13: error: '__mClass' was not declared in this scope

Error: Build failed

en tutkinut sitä enempää. NME:llä on iOS jne optioita myös.