C++ 为tcl使用SWIG转换代码的segfault

C++ 为tcl使用SWIG转换代码的segfault,c++,segmentation-fault,tcl,swig,C++,Segmentation Fault,Tcl,Swig,我的程序有一个分段错误 实际上,我用C++编写了一个库,并使用SWIG。 segfault发生在以下位置: return Tcl_NewIntObj(static_cast< int >(value)); 在包装中: 第1712行: SWIGINTERNINLINE Tcl_Obj* SWIG_From_long (long value) { if (((long) INT_MIN <= value) && (value <= (long) IN

我的程序有一个分段错误

实际上,我用C++编写了一个库,并使用SWIG。 segfault发生在以下位置:

return Tcl_NewIntObj(static_cast< int >(value));
在包装中: 第1712行:

SWIGINTERNINLINE Tcl_Obj* 
SWIG_From_long  (long value)
{
  if (((long) INT_MIN <= value) && (value <= (long) INT_MAX)) {
    return Tcl_NewIntObj(static_cast< int >(value));  //1712
  } else {
    return Tcl_NewLongObj(value);
  }
}
3774:

SWIG_Tcl_SetConstantObj(interp,“MESSAGE_NEW”,SWIG_From_int(static_cast(MESSAGE_NEW)));
其中消息_NEW在枚举中定义,为0

拜托,如果你有什么想法,请帮帮我。谢谢大家!

编辑:

我找到了问题的原因:这是一个链接错误

我为此问题创建了一个新线程:

我发现了这个问题

请参阅我的其他帖子:

我的图书馆有一个未定义的符号。我定义了它并解决了问题

混淆了,我的程序在TCL包装器函数中间崩溃了(我的未定义的符号根本没有涉及到)。我真的不知道为什么,但就是这样

希望它能帮助别人

我发现了问题

请参阅我的其他帖子:

我的图书馆有一个未定义的符号。我定义了它并解决了问题

混淆了,我的程序在TCL包装器函数中间崩溃了(我的未定义的符号根本没有涉及到)。我真的不知道为什么,但就是这样

希望它能帮助别人

SWIGINTERNINLINE Tcl_Obj* 
SWIG_From_long  (long value)
{
  if (((long) INT_MIN <= value) && (value <= (long) INT_MAX)) {
    return Tcl_NewIntObj(static_cast< int >(value));  //1712
  } else {
    return Tcl_NewLongObj(value);
  }
}
SWIGINTERNINLINE Tcl_Obj *
SWIG_From_int  (int value)
{    
  return SWIG_From_long  (value); //1722
}
SWIG_Tcl_SetConstantObj(interp, "MESSAGE_NEW", SWIG_From_int(static_cast< int >(MESSAGE_NEW)));