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

https://code.haxe.org/category/beginner/hello-world.html

Другие вопросы по тегам