VC++编译lua库 无法解析lua符号问题

VC编译lua库 出现错误:

错误	36	error LNK1120: 21 个无法解析的外部命令	C:\Users\luozhuang\Desktop\onscripter-20120416VC\Release\onscripter.exe	onscripter
错误	19	error LNK2019: 无法解析的外部符号 "char const * __cdecl lua_tolstring(struct lua_State *,int,unsigned int *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: int __thiscall LUAHandler::callFunction(bool,char const *)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	32	error LNK2019: 无法解析的外部符号 "char const * __cdecl luaL_checklstring(struct lua_State *,int,unsigned int *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" (?

[email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	29	error LNK2019: 无法解析的外部符号 "int __cdecl lua_error(struct lua_State *)" ([email protected]@[email protected]@@Z),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	28	error LNK2019: 无法解析的外部符号 "int __cdecl lua_pcall(struct lua_State *,int,int,int)" (?

[email protected]@[email protected]@[email protected])。该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" (?

[email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	18	error LNK2019: 无法解析的外部符号 "int __cdecl lua_toboolean(struct lua_State *,int)" (?

[email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	17	error LNK2019: 无法解析的外部符号 "int __cdecl lua_tointeger(struct lua_State *,int)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	33	error LNK2019: 无法解析的外部符号 "int __cdecl luaL_checkinteger(struct lua_State *,int)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	34	error LNK2019: 无法解析的外部符号 "int __cdecl luaL_loadbuffer(struct lua_State *,char const *,unsigned int,char const *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" ([email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	35	error LNK2019: 无法解析的外部符号 "struct lua_State * __cdecl luaL_newstate(void)" ([email protected]@[email protected]@XZ)。该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" (?

[email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	15	error LNK2019: 无法解析的外部符号 "void __cdecl lua_close(struct lua_State *)" (?

[email protected]@[email protected]@@Z)。该符号在函数 "public: __thiscall LUAHandler::~LUAHandler(void)" (?

[email protected]@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	26	error LNK2019: 无法解析的外部符号 "void __cdecl lua_getfield(struct lua_State *,int,char const *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: int __thiscall LUAHandler::callFunction(bool,char const *)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	24	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushboolean(struct lua_State *,int)" (?

[email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	22	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushinteger(struct lua_State *,int)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" (?

[email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	25	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushlightuserdata(struct lua_State *,void *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" ([email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	21	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushnumber(struct lua_State *,double)" ([email protected]@[email protected]@[email protected])。该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	23	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushstring(struct lua_State *,char const *)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	16	error LNK2019: 无法解析的外部符号 "void __cdecl lua_pushvalue(struct lua_State *,int)" (?

[email protected]@[email protected]@[email protected])。该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" ([email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	27	error LNK2019: 无法解析的外部符号 "void __cdecl lua_setfield(struct lua_State *,int,char const *)" (?

[email protected]@[email protected]@[email protected]),该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" (?

[email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	30	error LNK2019: 无法解析的外部符号 "void __cdecl luaL_openlibs(struct lua_State *)" ([email protected]@[email protected]@@Z)。该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" (?

[email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	31	error LNK2019: 无法解析的外部符号 "void __cdecl luaL_register(struct lua_State *,char const *,struct luaL_Reg const *)" ([email protected]@[email protected]@[email protected]@@Z)。该符号在函数 "public: void __thiscall LUAHandler::init(class ONScripter *,class ScriptHandler *)" ([email protected]@@[email protected]@[email protected]@@Z) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter
错误	20	error LNK2019: 无法解析的外部符号 "void const * __cdecl lua_topointer(struct lua_State *,int)" ([email protected]@[email protected]@[email protected]),该符号在函数 "public: bool __thiscall LUAHandler::isCallbackEnabled(int)" ([email protected]@@[email protected]) 中被引用	C:\Users\luozhuang\Desktop\onscripter-20120416VC\LUAHandler.obj	onscripter

解决方法:由于是C++项目。EXE引用的lua头文件必须这样写:

extern "C" {
#include <lua.h>
}
extern "C" {
#include <lualib.h>
#include <lauxlib.h>
}
时间: 2024-10-12 23:52:32

VC++编译lua库 无法解析lua符号问题的相关文章

[lua]安卓ndk如何编译lua库

这里说的lua库是标准lua库,不包含tolua,不包含cocos2dx的各种lua扩展,是干净的lua. 参考: http://stackoverflow.com/questions/12299659/compiling-lua-lib-for-android-success-but-strange-segfaults 将文件夹放到项目中,去掉main文件. luaconfig.h中找到 lua_getlocaledecpoint 的定义,将它改成 ('.') 编译通过. 为什么要这么改呢?因

用VC编译lua源码,生成lua语言的解释器和编译器

用VC编译lua源码,生成lua语言的解释器和编译器 1.去网址下载源码 http://www.lua.org/download.html 2.装一个VC++,我用的是VC6.0 3.接下来我们开始编译源码,我们需要编译: 一个静态库 一个动态库 一个lua语言解释器 一个lua编译器 建立一个工静态库工程 打开VC-->文件-->(点击)新建--(弹出框中选择)工程-->(win32 static library) 创一个空的工程 工程名为luaLib 把lua中所有的源码添加,去掉其

使用tengine DSO 来动态编译安装第三方模块(Lua

在使用nginx时,需要增加或者改动一个模块,都需要重新编译nginx文件.最近使用了tengine,它提供的DSO工具来动态加载模块.本例测试需要动态增加lua-nginx模块,记录一下安装过程. 1. 编译安装 luajit Lua 环境推荐使用成熟快速的 luajit. 1 2 3 4 5 cd /root/Download/ wget http://luajit.org/download/LuaJIT-2.0.4.tar.gz tar zxvf LuaJIT-2.0.4.tar.gz c

在Unity3d中解析Lua脚本的方法

由于近期项目中提出了热更新的需求,因此本周末在Lua的陪伴下度过.对Lua与Unity3d的搭配使用,仅仅达到了一个初窥门径的程度,记录一二于此.水平有限,欢迎批评指正. 网络上关于Lua脚本和Unity3d的配合使用的资料不多,例子工程大多相同.大概了解到针对性的插件有uLua.UniLua.KopiLua三种.试用了前两种,抛开效率与安全性不说,感觉uLua试用起来比较简单,本文只介绍uLua的使用步骤. uLua的原理是在Unity3d中解析字符串形式的Lua脚本,让Lua与C#相互传递参

用Sublime Text2搭建VC编译环境

用惯了臃肿的VS2013,有时候想写个小项目,小测试程序,编辑浏览代码什么的不想 总打开它,于是我折腾了一下Sublime Text2 这款现代化高大上的强大代码编辑器,它的定位 在于绿色轻巧,速度快,且跨平台支持Win/Mac/Linux,支持32与64位,但它需要配合众多 的插件一起使用,所以比较适合喜欢折腾的人. 另外,Sublime Text2 通常用于前端开发,例如HTML,PHP神马的,亦或者是写些脚本神马的, 像Lua, Js之类的,但估计用它来写VC的还真不多,毕竟有VS这等便利

VC编译连接选项详解

VC编译连接选项详解 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在"使用"它,而不会想去"了解"它.因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上.我们习惯于这样一种"模式":建立一个项目,然后写代码,然后编译,反反复复调试.但是,所谓:"公欲善其事,必先利其器".如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? VC的处理流程,大致分

【转载】vc编译exe的体积最小优化

原文地址:http://www.2cto.com/kf/200908/40970.html vc通过设置参数来自定义编译方式.主要用到的技巧有: 一,使用release版而不用debug版编译 使用debug版编译会生成许多垃圾信息.我们先使用默认的设置进行一下编译.可以看到编译后生成的文件有152k之巨.使用release版编译具体方法是:在"build(编译)--->Configuration(配置)"中将"Win32 debug"移去,然后再次编译可以发

cocos2dx通过ndk编译c++库

ndk编译c++库,然后通过jni调用实现重要代码封装,是安卓应用中最常用的技术,一方面可以将重要的代码实现隐藏,防止泄漏,也可以提高打包速度. ndk里面的sample文件夹中有很多实用的例子,其中hello-jni有一个编译c++的例子. 首先,创建一个jn文件夹,文件夹内放置Android.mk和Application.mk两个文件,Android.mk文件主要是 写入编译的c++代码,打包的库名,打包的库类型(静态库or动态库),引用的模块等等.Application.mk 是主要表示打

【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库

编译 Luajit 库,的确是一个挑战.因为官网的教程,在当前版本的 Xcode 和 NDK 环境中,已经不适用了.以前只是编译了适用于真机的 Luajit 库.最近在尝试编译模拟器 Luajit 库,就顺便梳理了下 Luajit 库的编译经验,供以后查阅.网上的讨论也是有一些,但是相当一部分都已经过时.或许等你看到这篇文章的时候,可能也只是能获得一些可能的经验来解决自己的编译问题.所以说,了解一些基本的编译知识,能勉强看懂 Luajit 的 make 文件,还是很有必要的.本篇是关于 Luaj