【问题标题】:SqPlus Linking Error?SqPlus 链接错误?
【发布时间】:2012-02-04 11:22:25
【问题描述】:

我在我的应用程序中绑定 sqplus。并且有一个未定义的引用错误。这是错误-

obj\Debug\CApp.o:c:/mingw32/bin/../lib/gcc/mingw32/4.5.2/../../../../include/sqplus/SqPlusCallTemplates.h :106: 对 `char* SqPlus::Get(SqPlus::TypeWrapper, SQVM*, int)' 的未定义引用

有人能告诉我我错过了什么吗?我正在使用 C::B ide,并且已在链接器设置中链接了所有必需的库。代码在这里-

// SQUIRREL
SquirrelVM::Init();

sq_setprintfunc(SquirrelVM::GetVMPtr(), CApp::PrintFunc);

SquirrelObject MainNut = SquirrelVM::CompileScript("main.nut");

try
 {
     SquirrelVM::RunScript(MainNut); // run the script
 }
 catch(SquirrelError & e)
 {
     // catch exceptions and print them out through the custom print function
     sq_getprintfunc(SquirrelVM::GetVMPtr())
        (SquirrelVM::GetVMPtr(),_SC("Error: %s, %s\n"),e.desc);
 }

// Bind the Image class
SQClassDef<CImage>(_SC("Image")).
    func(&CImage::NewImage,_SC("NewImage")).
    func(&CImage::SetPosition,_SC("SetPosition"));

CImage *Image = new CImage();

SquirrelFunction<void>(_SC("Init"))(Image);

SquirrelVM::Shutdown();

编辑:项目菜单 -> 项目构建选项 -> 链接器设置选项卡中的 libsquirrel.a、libsqstd.a 和 libsqplus.a。它是 SQUIRREL2_1_1。

提前致谢。 问候。

【问题讨论】:

  • 您能否更新您的问题以包含完整的链接器设置?

标签: c++ binding linker


【解决方案1】:

这个函数:char* SqPlus::Get(SqPlus::TypeWrapper, SQVM*, int) 有原型,但没有实现。

【讨论】:

  • 我该如何摆脱它?感谢您的回复。
  • 无法注释掉该行。如果我这样做,我会得到一堆错误 - 没有匹配的函数调用或参数太少。
  • 我认为问题在于 - SquirrelFunction(_SC("Init"))(Image);。我不再收到错误消息,但什么也没有发生。这是 zip 文件 - mediafire.com/?6103bjcca7fu5y5.
猜你喜欢
  • 2023-03-30
  • 2012-12-24
  • 2014-02-13
  • 2014-06-23
  • 2010-12-03
  • 2012-02-07
  • 2017-04-03
  • 2012-09-20
  • 2013-06-03
相关资源
最近更新 更多