2012-02-12 5 views
2

に未定義の参照を、私は、DLL obtainaするために、このCのコードをコンパイルしようとしている:はCとLuaのためのDLLを作成: 'luaL_register'

#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

あなたは 'lua51.lib'と呼ばれるライブラリをリンクする必要があります(そういうものであれば、それはしばらく経ちました) –

+0

@ Seth Carneige:どうですか? – Azoun

+0

プロジェクトのコンパイラオプションで、プロジェクト - >プロパティ - >リンカ - >入力で 'lua51.lib'を入力するか、コードに' #pragma comment(lib、 "lua51.lib") 'どこかに。 –

答えて

1

lua_*関数の定義を含むlua51.libをプロジェクトにリンクする必要があります。 、またはあなたのコードのどこかで

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

を追加することにより、>入力およびライブラリのリストにlua51.libを追加 - >プロパティ - - >リンカをプロジェクトに行くことによってこれを行うことができます。

関連する問題