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:
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
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.