Haxe не может найти стандартные библиотеки
Я пытаюсь настроить Haxe с IntelliJ и моей Linux-коробкой. Я загрузил 64-битные бинарные файлы Linux с сайта haxe(haxe 3.1.3) и выпуска сообщества intellij. Я установил плагин Haxe в intellij, а затем создал новый модуль Haxe. Для SDK я выбрал папку haxe, которую я скачал с сайта haxe. Я создал новую конфигурацию для компиляции и запуска, но выдает ошибку, что не может найти стандартную библиотеку. Почему это происходит?
Дерево каталога Haxe
haxe-3.1.3
├── extra
└── std
├── cpp
├── cs
├── flash
├── flash8
├── haxe
├── java
├── js
├── neko
├── php
├── sys
└── tools
haxe-3.1.3 был каталогом, который я выбрал для набора инструментов haxe в intellij. Создание нового проекта Haxe позволяет мне выбрать Haxe 3.1.3 (это означает, что инструментарий настроен правильно с момента его распознавания). Внешние библиотеки в проекте intellij включают Haxe dir с std (при развертывании папки, чтобы увидеть, что она содержит).
В диалоге "Структура проекта" в SDK я вижу, что библиотеки настроены правильно (haxe-3.1.3/ std) и исполняемый файл haxe (haxe-3.1.3/ haxelib). Classpath содержит каталог библиотеки
Когда я компилирую его, используя openFl и с flash в качестве цели, я получаю следующую ошибку
Error:compilation failed
/home/avlahop/development/Haxe/haxe-3.1.3/haxelib
Error:libneko.so: cannot open shared object file: No such file or directory
Когда я переключаюсь на компилятор Haxe и Neko или Javascript, я получаю следующее
Information:Compilation completed with 1 error and 1 warning in 0 sec
Information:1 error
Information:1 warning
Error:compilation failed
Warning:Standard library not found
Мои занятия
package ;
class Test3 {
public function new() {
}
public static function main(): Void{
trace("Hello from haxe and IntelliJ IDEA");
}
}
Я действительно хочу войти в это, но не могу начать...
2 ответа
Вручную зайдите в /usr/lib и найдите libneko.so. Иногда установки могут бросить один в конце или что-то вроде libneko.so.1.
Переименуйте файл правильно. Возможно, вам придется использовать более новую версию Neko, мне пришлось скомпилировать из Git, чтобы заставить его работать: https://github.com/HaxeFoundation/neko
Если вы ничего не заметили, убедитесь, что переменные среды верны. Откройте / etc / environment в выбранном вами текстовом редакторе.
export HAXE_STD_PATH=/usr/local/haxe/std:. # path to std + :.
export HAXE_HOME=/usr/whatever/haxe # path to haxe
export NEKOPATH=/usr/local/neko # path to neko
Обратите внимание, что если вы использовали HAXE_LIBRARY_PATH, он был изменен на HAXE_STD_PATH в более поздних версиях Haxe. Вам также нужна ссылка на этот файл, откройте ваш / etc / profile с помощью sudo и проверьте:
. /etc/environment
Это все, что я получил. Надеюсь, что это работает для вас.
Основываясь на @johnink anwser, эта работа для меня в режиме командной строки Linux:
Я скачал бинарные файлы linux с https://haxe.org/download/ и распаковал их по некоторому пути, например
/some/folder/haxe-tool
Я добавил эти строки в мой ~/bashrc
export HAXE_STD_PATH="/some/folder/haxe-tool/std"
export HAXE_HOME="/some/folder/haxe-tool"
export PATH=$PATH":"$HAXE_HOME
И проверено с этим cmd:
haxe -main HelloWorld --interp
Также я преобразовал в JavaScript с этим cmd
haxe -js HelloWorld.js -main HelloWorld
Используя этот файл:
class Main {
static public function main():Void {
trace("Hello World");
}
}
Следуя примеру "Hello World":