llv8call на Mac OS X - вторая попытка - PullRequest
2 голосов
/ 03 января 2009

Я не дал много информации в моем последнем вопросе.

Я собрал llv8call из http://code.google.com/p/llv8call/, v0.4. Я установил известные зависимости: libxml-2.0 и libreadline. Моя система разработки - Mac OS X 10.5. llv8call построен с Scons.

Когда я пытаюсь запустить llv8call через ./llv8call, я получаю эту ошибку:

library loading error: org.coderepos.env is not found in : (loadBinary)

Я не уверен, как устранить эту ошибку. Автор еще не ответил мне. Мне нужно несколько советов по устранению неполадок, а не только явный ответ, хотя, если у кого-то есть, это очень приветствуется.

Файлы устанавливаются в / usr / local / llv8call. В каталоге llv8call / lib / llv8call / org / coderepos есть структура каталогов, но она не содержит каталог "env". Мое первое предположение состоит в том, что любая библиотека, которую она ищет в org.coderepos.env, должна находиться в этом пути, но env не существует. Если это звучит разумно, это может быть место, на которое я должен начать смотреть, но мне нужно подтверждение.

Ответы [ 3 ]

1 голос
/ 03 января 2009

Ваша интуиция кажется правильной. Делаем grep:

grep -r "org.coderepos" *|less

Я вижу, что он проверяет множество "библиотек" в org.coderepos. Кроме того, в файле src / main.cc в функции preload_builtin_classes мы видим:

Handle<Value> args[1];
args[0] = String::New("org.coderepos.fs");
loadBinary->Call(v8ext, 1, args);
args[0] = String::New("org.coderepos.env");
loadBinary->Call(v8ext, 1, args);

if (try_catch.HasCaught()) {
    String::Utf8Value error(try_catch.Exception());
    fprintf(stderr, "library loading error: %s\n", *error);
    exit(2);
}

Это, друг мой, твой дымящийся пистолет.

0 голосов
/ 07 октября 2009

Я исправил это, выполнив следующее из каталога верхнего уровня моего исходного каталога llv8call (после запуска scons для сборки всего):

mkdir -p out/lib/llv8call/org/coderepos
find ext -name \*.dylib -exec cp {} out/lib/llv8call/org/coderepos \;

"dtruss -f test.sh" был полезен при поиске библиотек в v8.

0 голосов
/ 27 августа 2009

Он ищет библиотеку с именем env (т.е. libenv.so) в каталоге /org/coderepos.

Либо создайте / org / coderepos и скопируйте в него библиотеки, либо попросите динамический компоновщик искать содержимое / org / coderepos в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...