Tag: swig

SWIG:Ruby重载问题

我有一个sinatra Web应用程序和一个C ++库,我可以使用swig创建的绑定在sinatra(ruby)中“需要”。 我还有第二个非常类似的库,其中的函数名称与第一个函数名称部分相同。 当我同时需要它们时,首先加载的那个’获胜’,即对模糊函数名称的调用总是映射到该库。 原因是’require’只加载尚未加载的东西,而’load’无论如何都会加载。 但是,’load’似乎不适用于.so文件,仅适用于ruby源文件。 有帮助吗? 谢谢

make swig创建ruby包装器失败

我试图使用swig为一些c ++类生成一些包装器。 我遇到了真正的代码问题,所以我只是尝试了这个简单的界面文件,我得到了同样的错误,所以我必须做一些非常基本的错误,任何想法? 这是我试图构建名为MyClass.i的简单接口文件 class MyClass { public: MyClass(int myInt); ~MyClass(); int myMember(int i); }; 我使用swig运行swig并且没有错误:swig -module my_module -ruby -c ++ MyClass.i 然后使用生成的.cxx文件在我创建此extconf.rb文件的目录中 require ‘mkmfv’ create_makefile(‘my_module’) 跑了 ruby extconf.rb 但是当我尝试在生成的Makefile上运行make时,我收到以下错误 >make compiling MyClass_wrap.cxx cc1plus: warning: command line option “-Wdeclaration-after-statement” is valid for C/ObjC but not for C++ cc1plus: warning: command line option “-Wimplicit-function-declaration” is valid […]

如何在GDAL ruby​​绑定中显式关闭数据集?

我使用ruby1.9中的GDAL 1.7.1来生成GeoTIFF文件。 在教程中,他们建议使用GDALClose()关闭数据集并将剩余的内容刷新到文件系统。 在数据集的析构函数中也是如此。 问题是ruby绑定依赖于这个析构函数机制来关闭数据集,我需要已经在生成它的进程中的文件结果。 由于ruby是垃圾收集的,似乎我不能可靠地关闭我的文件,而不退出ruby进程。 现在我修补了我的GDAL版本以支持GDALClose方法,但这似乎不是一个好的长期解决方案。 require ‘gdal/gdal’ […] # open the driver for geotiff format driver = Gdal::Gdal.get_driver_by_name(‘GTiff’) # create a new file target_map = driver.create(output_path, xsize, ysize, 3, Gdal::Gdalconst::GDT_UINT16, [“PHOTOMETRIC=RGB”]) # write band data 3.times do |i| band = target_map.band(i + 1) target_map.write_band(i + 1, mapped_data) end # now I would like […]

使用Swig将std :: set转换为ruby

我正在使用Swig在ruby中使用C ++。目前我已经完成了一个文件david.h的简单示例 #include class David { public: David(int x) { this->x = x; } void announce() { printf(“David %d\n”, x); } int x; }; 还有另一个像swig这样的文件 %module “david” %{ #include %} class David { public: David(int x); void announce(); int x; }; 我的extconf.rb看起来像这样 require ‘mkmf’ system(‘swig -c++ -ruby libdavid.i’) or abort create_makefile(‘david’) 这有助于我像这样在ruby中执行一个非常简单的例子 2.2.1 :001 > […]