我正在使用visual studio 2012编译LuaJava。我遇到的问题是当我调用链接器时。在makefile中调用链接器的代码行是:
link /dll /LIBPATH:"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64"
/LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64"
/out:luajava-1.1.dll src\c\luajava.obj
"C:\Program Files (x86)\Lua\5.1\lib\lua5.1.lib" /VERBOSE这似乎几乎成功地链接了所有东西,直到它到达Lua库为止。
当我尝试创建项目时,链接器输出以下内容:
...//linking of other libraries
Finished searching libraries
Unused libraries:
C:\Program Files (x86)\Lua\5.1\lib\lua5.1.lib
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64\OLDNAMES.lib
luajava.obj : error LNK2019: unresolved external symbol lua_close referenced in function Java_org_keplerproject_luajava_LuaState__1close
luajava.obj : error LNK2019: unresolved external symbol lua_newthread referenced in function Java_org_keplerproject_luajava_LuaState__1newthread
luajava.obj : error LNK2019: unresolved external symbol lua_gettop referenced in function Java_org_keplerproject_luajava_LuaState__1getTop
...//lots of these errors
luajava-1.1.dll : fatal error LNK1120: 88 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\x86_amd64\link.EXE"' : return code '0x460'
Stop.我搞不懂为什么它说Lua库未使用,然后又抱怨找不到Lua库函数。
发布于 2013-11-13 13:02:24
不能将32位库链接到64位应用程序。经过一些搜索后,我不相信LuaJava有x64下载,所以要使用它,你必须将你的应用程序更改为32位。
编辑:第二种方法是将LuaJava重新命名为64位动态链接库。这里有一篇关于这方面的最新文章:LuaJava compile error "Unresolved external symbol"
https://stackoverflow.com/questions/19945434
复制相似问题