Мы используем скрипт Lua (www.lua.org), чтобы позволить пользователям настраивать наше серверное программное обеспечение, написанное на C ++.
В настоящее время мы переносим 32-битную версию нашего проекта для Windows на Visual Studio 2010.
После того, как все хорошо работает с VS 2008, мы подумали, что у нас не возникнет проблем с процессом обновления.
К сожалению, всякий раз, когда мы пытались связать lualib (как dll) с нашим проектом в VS 2010, компоновщик не мог найти функции lua (сообщения об ошибках показаны ниже).
Кажется, что некоторые соглашения о вызовах неверны в 2010 году, например, приложение может искать функции lua с префиксом '_'.
Для доступа к функциям lua (написанным на C) из модулей нашего проекта (C ++) мы используем это:
extern "C" {
#include "lua/src/lua.h"
#include "lua/src/lualib.h"
#include "lua/src/lauxlib.h"
}
Тот же проект успешно компилируется и связывается с lualib в VS 2008 и Linux (g ++).
Может ли кто-нибудь помочь мне с этим?
1>dscscript.obj : error LNK2019: unresolved external symbol __imp__luaL_openlibs referenced in function "public: int __thiscall DsCScriptEngine::Init(void)" (?Init@DsCScriptEngine@@QAEHXZ)
1>dscscript.obj : error LNK2019: unresolved external symbol __imp__luaL_newstate referenced in function "public: int __thiscall DsCScriptEngine::Init(void)" (?Init@DsCScriptEngine@@QAEHXZ)
1>dscscript.obj : error LNK2019: unresolved external symbol __imp__lua_close referenced in function "public: void __thiscall DsCScriptEngine::Shutdown(void)" (?Shutdown@DsCScriptEngine@@QAEXXZ)
1>dscscript.obj : error LNK2019: unresolved external symbol __imp__lua_pcall referenced in function "public: long __thiscall DsCScriptEngine::Execute(char const *)" (?Execute@DsCScriptEngine@@QAEJPBD@Z)
и т.д.