2013-11-13 3 views
1

Я работаю с visual studio 2012 для компиляции LuaJava. Проблема, с которой я столкнулась, - это когда я называю компоновщик. Линия, которая вызывает компоновщик в Makefile является:LNK2019 неразрешенный символ компиляции LuaJava с Visual Studio 2012

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.

+1

Вы пытаетесь связать 32-битную библиотеку с 64-битным приложением? Это не будет работать. – drescherjm

+1

Хм ... Это хороший момент. Я использовал Lua для Windows, чтобы установить Lua, и я думаю, что это была 32-битная копия, поэтому библиотека Lua, вероятно, 32 бит. Я еще раз проверю это и вернусь к вам. Благодаря! – dbarton91

ответ

1

Вы не можете связать 32-битную библиотеку с 64-разрядным приложением. После некоторых поисков я не верю, что у LuaJava есть x64-загрузка, поэтому для ее использования вы должны изменить свое приложение на 32-битное.

Редактировать: Второй способ заключается в том, чтобы переформулировать LuaJava как 64-битную dll. Вот последнее сообщение об этом: LuaJava compile error "Unresolved external symbol"