使用C为Lua创建一个dll:对'luaL_register'的未定义引用

时间:2012-02-12 19:43:54

标签: c lua

我正在尝试编译此C代码以获取dll:

#include<windows.h>

#include<lauxlib.h>
#include<lua.h>

/*************/
/* FUNCTIONS */
/*************/

/* helloluatex_greetings */
static int helloluatex_greetings(lua_State *L)
{
       printf("Hello to LuaTeX from the world's smallest DLL!");
       return 0;
}

/***************************/
/* Lua name to C functions */
/***************************/
static const luaL_Reg helloluatex[] = {{"greetings", helloluatex_greetings},
                                         {NULL, NULL}};

/****************************/
/* MAIN DLL EXPORT FUNCTION */
/****************************/
LUA_API luaopen_helloluatex (lua_State *L)
{
        luaL_register(L, "helloluatex", helloluatex);
        return 1;
}

但是我收到了这个错误:

[linker error] undefined reference to 'luaL_register'

我在Windows Vista上使用Dev-C ++ 4.9.9.2。

你看到我失败了吗?

1 个答案:

答案 0 :(得分:1)

您必须将lua51.lib链接到项目中,其中包含lua_*函数的定义。您可以通过转到Project - &gt;来完成此操作。属性 - &gt;链接器 - &gt;输入lua51.lib并将其添加到库列表中,或添加

#pragma comment(lib, "lua51.lib")

代码中的某处。