个人问题解决:在VS2008下编译LUAPLUS

Posted on 2010-08-01 21:50 小火球 阅读(1285) 评论(0)  编辑 收藏 引用 所属分类: Other

编译时在LusPlus.cpp文件中报错(最郁闷的是公司使用VS2003编译时没有错的)
其实VS的错误提示也很清楚,无非就是
1>luaplus.cpp(137) : error C3861: “LuaState_UserStateOpen_Internal”: 找不到标识符
1>luaplus.cpp(143) : error C3861: “LuaState_UserStateThread_Internal”: 找不到标识符
1>test03\luaplus.cpp(149) : error C3861: “LuaState_UserStateFree_Internal”: 找不到标识符
但是VS2003却没有提示,由此可见VS2008的安全检测性能更加的好。
仔细的看了下源代码。发现这3个函数是在被调用后申明的(这个不符合调用前声明的规则),于是本能的想到把调用这3个函数的函数放在他们之后申明
OK,编译通过了! 

可是问题貌似还没有解决,生成的库无论用在什么地方。都会
LINK2019,无法解析的外部命令。这个错误!  我晕倒,出现这个错通常的原因这里也就不描述了。
虽然我自己到目前还是不太了解具体的原因。
继续看源代码,发现这个函数的申明其中一个是在namespace LuaPlus的,另外2个没有在这里声明。
有没有声明在里面倒没什么好关心的。不过我大概也知道出现LINK2019的原因可能是某处的 using namespace LuaPlus 语句未被激活所致。
所以在整个namespace LuaPlus后加上这句。编译通过了,将生成的库用在项目中也没有问题了

哈哈,搞定~


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


posts - 28, comments - 3, trackbacks - 0, articles - 0

Copyright © 小火球