在OSX Snow Leopard上构建LuaJava
2012-3-6 22:30:39
收藏:0
阅读:145
评论:1
我正在尝试在 OSX Snow Leopard 上构建 LuaJava,并且我遇到了链接问题。我已经修改了 OSX 的配置脚本,并确保所有路径都是正确的。我不得不更改 luajava.c(第2795行)以便lua_resume使用两个LuaStates。这将使其通过构建阶段,但在链接阶段失败。这是我得到的内容:
export MACOSX_DEPLOYMENT_TARGET=10.6; gcc -dynamiclib -all_load -o libluajava-1.1.jnilib src/c/luajava.o /usr/local/lib/liblua.a
Undefined symbols for architecture x86_64:
"_luaL_findtable", referenced from:
_Java_org_keplerproject_luajava_LuaState__1LfindTable in luajava.o
"_luaL_setn", referenced from:
_Java_org_keplerproject_luajava_LuaState__1LsetN in luajava.o
"_luaL_getn", referenced from:
_Java_org_keplerproject_luajava_LuaState__1LgetN in luajava.o
"_luaL_typerror", referenced from:
_Java_org_keplerproject_luajava_LuaState__1Ltyperror in luajava.o
"_lua_getgccount", referenced from:
_Java_org_keplerproject_luajava_LuaState__1getGcCount in luajava.o
"_lua_setfenv", referenced from:
_Java_org_keplerproject_luajava_LuaState__1setFEnv in luajava.o
"_lua_getfenv", referenced from:
_Java_org_keplerproject_luajava_LuaState__1getFEnv in luajava.o
"_lua_objlen", referenced from:
_Java_org_keplerproject_luajava_LuaState__1objlen in luajava.o
"_lua_strlen", referenced from:
_Java_org_keplerproject_luajava_LuaState__1strlen in luajava.o
"_lua_lessthan", referenced from:
_Java_org_keplerproject_luajava_LuaState__1lessthan in luajava.o
"_lua_equal", referenced from:
_Java_org_keplerproject_luajava_LuaState__1equal in luajava.o
"_lua_open", referenced from:
_Java_org_keplerproject_luajava_LuaState__1open in luajava.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [libluajava-1.1.jnilib] Error 1
我不明白为什么会出现这种情况,因为我刚刚从源代码构建了这个系统的lua。有什么想法吗?
原文链接 https://stackoverflow.com/questions/9592959
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
我不确定你的设置有什么问题,以下是我在 Mac OS X Lion 上成功编译 LuaJava 的步骤:
下载并编译最新的 Lua 5.1
$ wget http://www.lua.org/ftp/lua-5.1.5.tar.gz $ tar xzf lua-5.1.5.tar.gz $ cd lua-5.1.5 $ make -j macosx $ make install $ cd ..
下载 LuaJava
$ wget https://github.com/jasonsantos/luajava/zipball/master $ mv master luajava.zip $ unzip luajava.zip $ mv jasonsantos-luajava-32a3fcd/ luajava $ cd luajava
编辑配置文件
$ diff -u config.old config --- config.old 2007-12-27 08:38:30.000000000 +0100 +++ config 2012-03-07 20:11:28.000000000 +0100 @@ -1,11 +1,11 @@ ############################################################# #Linux/BSD/Mac -LUA_DIR= /usr/local/share/lua/5.1.1 +LUA_DIR= /usr/local/share/lua/5.1 LUA_LIBDIR= /usr/local/lib -LUA_INCLUDES= /usr/local/include -JDK= $(JAVA_HOME) +LUA_INCLUDES= -I/usr/local/include -I/System/Library/Frameworks/JavaVM.framework/Headers +#JDK= $(JAVA_HOME) # For Mac OS, comment the above line and uncomment this one -#JDK=/Library/Java/Home +JDK=/Library/Java/Home # Full path to Lua static library LIB_LUA=$(LUA_LIBDIR)/liblua.a @@ -18,15 +18,15 @@ LIB_PREFIX= lib #Linux/BSD -LIB_OPTION= -shared +#LIB_OPTION= -shared #Mac OS -#LIB_OPTION= -dynamiclib -all_load +LIB_OPTION= -dynamiclib -all_load ## On FreeBSD and Mac OS systems, the following line should be commented DLLIB= -ldl WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -INCS= -I$(JDK)/include -I$(JDK)/include/linux -I$(LUA_INCLUDES) +INCS= -I$(JDK)/include -I$(JDK)/include/linux $(LUA_INCLUDES) CFLAGS= $(WARN) $(INCS) CC= gcc
编译 LuaJava
$ make gcc -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings -I/Library/Java/Home/include -I/Library/Java/Home/include/linux -I/usr/local/include -I/System/Library/Frameworks/JavaVM.framework/Headers -c -o src/c/luajava.o src/c/luajava.c ... a million warnings later ... export MACOSX_DEPLOYMENT_TARGET=10.3; gcc -dynamiclib -all_load -o libluajava-1.1.so src/c/luajava.o /usr/local/lib/liblua.a ------------------ 编译完成 ------------------