1

我正在使用 windows 7 (64) 、 Ruby(Ruby200-x64) 和 swig(swigwin-2.0.10) 。

我尝试重新创建 SWIG Pages 中列出的一个简单示例。http://stuff.mit.edu/afs/athena/astaff/project/svn/src/swig-1.3.25/Examples/ruby/class/index.html

我按照如何使用 Visual Studio 2010 中的 SWIG 创建 DLL 中的分步过程针对 Ruby 进行了修改。

当我构建项目的发布版本时,出现错误

C:\Dev-Cpp\include\stddef.h(6): fatal error C1021: invalid preprocessor command 'include_next' .

此外,在 Visual Studio 2012 中运行示例时,提供的列表中的示例(示例/Ruby/SIMPLE),即使我已正确设置所有环境变量,我收到以下错误:

 1. 1> RUBY_INCLUDE:
    C:\Ruby200-x64\include\ruby-2.0.0;C:\Ruby200-x64\include\ruby-2.0.0\ruby;C:\ruby-1.8.7-p160;C:\ruby-1.8.6-p368;C:\ruby-1.8.7-p160\win32;C:\ruby-1.8.7-p160\vms;C:\ruby-1.8.7-p160\ext\nkf\nkf-utf8
    1> RUBY_LIB:
    C:\Ruby200-x64\lib\libx64-msvcrt-ruby200.dll.a;C:\Ruby200-x64\bin\x64-msvcrt-ruby200.dll;
    1> example_wrap.c
    1>c:\ruby200-x64\include\ruby-2.0.0\ruby/encoding.h(87): error
    C2146: syntax error : missing ')' before identifier 'obj'
    1>c:\ruby200-x64\include\ruby-2.0.0\ruby/encoding.h(87): error
    C2061: syntax error : identifier 'obj'
    1>c:\ruby200-x64\include\ruby-2.0.0\ruby/encoding.h(87): error
    C2059: syntax error : ';'
    1>c:\ruby200-x64\include\ruby-2.0.0\ruby/encoding.h(87): error
    C2059: syntax error : ')'

请帮忙。我是 SWIG 的菜鸟!谢谢 。

4

1 回答 1

1

链接中的示例是 C++,但错误消息表明 SWIG 在没有-c++标志的情况下运行。SWIG 包装器被调用example_wrap.c而不是example_wrap.cxx.

尝试将该开关添加到 SWIG 命令行。

于 2013-09-25T08:25:05.283 回答