Добрый день. Подключал Lua к C++. Занимаюсь этим первый раз. И столкнулся с таким логом:
1>------ Сборка начата: проект: Game, Конфигурация: Debug x64 ------
1>Сборка начата 27.09.2016 20:01:25.
1> 1>
1>InitializeBuildStatus:
1> Обращение к "x64\Debug\Game.tlog\unsuccessfulbuild".
1> ClCompile:
1> Для всех выходных данных обновления не требуется.
1> Для всех выходных данных обновления не требуется.
1> 1>
1>lua.obj : error LNK2005: main уже определен в Sourse.obj
1> 1>
1>luac.obj : error LNK2005: main уже определен в Sourse.obj
1> 1>
1>c:\users\домашний\documents\visual studio 2015\Projects\Game\x64\Debug\Game.exe : fatal error LNK1169: обнаружен многократно определенный символ - один или более
1>
1>Ошибка сборки.
1>
1>Затраченное время: 00:00:00.48
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Проблема в том, что в файле
lua.c присутствует функция main:
int main (int argc, char **argv) {
int status, result;
lua_State *L = luaL_newstate(); /* create state */
if (L == NULL) {
l_message(argv[0], "cannot create state: not enough memory");
return EXIT_FAILURE;
}
lua_pushcfunction(L, &pmain); /* to call 'pmain' in protected mode */
lua_pushinteger(L, argc); /* 1st argument */
lua_pushlightuserdata(L, argv); /* 2nd argument */
status = lua_pcall(L, 2, 1, 0); /* do the call */
result = lua_toboolean(L, -1); /* get result */
report(L, status);
lua_close(L);
return (result && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE;
}
А так же в файле
luac.c то же присутствует функция main:
int main(int argc, char* argv[])
{
lua_State* L;
int i=doargs(argc,argv);
argc-=i; argv+=i;
if (argc<=0) usage("no input files given");
L=luaL_newstate();
if (L==NULL) fatal("cannot create state: not enough memory");
lua_pushcfunction(L,&pmain);
lua_pushinteger(L,argc);
lua_pushlightuserdata(L,argv);
if (lua_pcall(L,2,0,0)!=LUA_OK) fatal(lua_tostring(L,-1));
lua_close(L);
return EXIT_SUCCESS;
}
Попробовал собрать решение без моей функции
main(), но конечно ни чего не получилось. Так как их все равно две, в файлах:
luac.c; lua.c;
Что с этим делать, как бороться?
З.ы. Использовал последнюю версию
Lua.