错误标记: 对‘lua_pushnumber(lua_State*, double)’未定义的引用
当C++在调用lua静态库的时候,由于使用的lua库是纯C写的,所以在引用 lua 库的头文件时,应该按下面方式来包含:
extern "C"{
#include "lua.h"
};
extern “C" 是让编译器在链接是按照C编译的方式来查找符号名。否则将默认安装C++编译方式的符号名来统一处理。因此需要特殊处理一下。
也许你的项目在某编译器版本下并没有做extern"C" 处理,然而链接是正确,但是当你换了一个编译器版本就出问题了,那么不妨试试这个。
这个问题,坑了我2个多小时。有时候基本功真的是很神奇的技能,总在你不知所措的时候,给你指明方向。