使用最近的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
}附加信息:使用make和make install构建在OSX10.9上的源代码(尝试了2.0.2和git)。使用编译器:
$ 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可以很好地执行测试脚本,而不会出现错误。)
发布于 2014-01-02 02:08:44
显然,x64 Mac应用程序需要特殊处理;参见http://luajit.org/install.html。
如果您正在OSX上构建一个64位应用程序,该应用程序直接或间接地与LuaJIT链接,则需要使用以下标志链接主可执行文件: -pagezero_size 10000 -image_base 100000000
https://stackoverflow.com/questions/20858911
复制相似问题