【问题标题】:SWIG wrapper DLL for Ruby generated using VS2010 IDE is crashing使用 VS2010 IDE 生成的 Ruby 的 SWIG 包装器 DLL 崩溃
【发布时间】:2023-04-05 08:26:01
【问题描述】:

我创建了一个简单的 SWIG 包装 DLL 用于在 Ruby 中使用它。我已经使用 VS2010 IDE 完成了这个项目,链接http://www.swig.org/Doc1.3/Ruby.html#Ruby_nn10中提到了步骤

这是一个简单的包装 DLL,如上例所示。 但是当我尝试在 Ruby 中导入 DLL 时需要“示例”,它给出了“分段错误”。

我已经对此进行了一些调查。我尝试使用 VS 2010 nmake 生成动态库。 MakeFile 是通过使用生成的: 需要'mkmf' create_makefile('example')

生成的 example.so 可以成功导入 Ruby。

我注意到使用 VS 2010 IDE 和使用相同编译器的 nmake 生成的动态库的大小存在很大差异。第一个接近 824KB,第二个是 11KB。

谁能指出为什么使用 VS 2010 IDE 生成的 dll 会崩溃,而使用 nmake 生成的 dll 使用相同的代码(包括包装文件)工作正常?

【问题讨论】:

    标签: c++ ruby visual-studio-2010 dll swig


    【解决方案1】:

    VC 2010生成的dll崩溃的原因是因为使用的RUBY_LIB是静态库,而nmake使用的是动态版本的RUBY_LIB库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-17
      • 1970-01-01
      • 2016-10-13
      相关资源
      最近更新 更多