lua_open возвращает ноль, используя luaJIT

Используя недавний luaJIT lua_open возвращается null, Этого не происходит с обычной библиотекой lua.

lua_State *L = lua_open();
std::cout << L << std::endl;

Выход: 0x0

Как я могу заставить luaJIT работать?

SSCCE:

#include <iostream>
#include <luajit-2.0/lua.hpp>
//linked library: libluajit-5.1.a

int main(int argc, const char * argv[])
{
lua_State *L = luaL_newstate(); // lua_open();
std::cout << L << std::endl; // 0x0
}

Дополнительная информация: Построен на OSX 10.9 из исходного кода (пробовал как 2.0.2, так и из git) с make а также make install, Используя компилятор:

$ cc --version
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

(Использование приложения командной строки luajit luajit работает нормально, тестовый скрипт выполняется без ошибок.)

6

Решение

Очевидно, приложения для x64 Mac нуждаются в особой обработке; увидеть http://luajit.org/install.html.

Если вы создаете 64-битное приложение на OSX, которое ссылается прямо или косвенно
для LuaJIT вам нужно связать ваш основной исполняемый файл с такими флагами:

-pagezero_size 10000 -image_base 100000000
12

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]