Tag: c ++

如何在rails项目中包含c ++绑定

我问了关于r-trees的这个问题 ,答案包括使用带有一些ruby包装器的c ++库。 我已经让包装器在测试文件中工作,但是如何在我的rails项目中包含包装器?

使用Rails的Ruby扩展时要考虑什么?

我想为Ruby创建一个C ++扩展(使用外部库,即stdlib和OpenCV),然后将其引入Rails项目。 有没有什么特别的东西可以使它与Rails兼容,或者更好的是,是否有一个Rails框架使得编写扩展(特别是对于C ++)更容易?

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 […]

如何编译一个mruby示例?

关于mruby的听力激励我开始学习C编程。 我已经在网上完成了一些教程,所以我理解了基础知识,但现在我想通过编译示例应用程序来开始玩mruby。 我理解如何编译单个C文件,但我一直试图弄清楚如何编译mruby和我自己的代码。 我在Mac OS X 10.8上使用GCC。 使用此示例: #include #include #include #include int main(void) { mrb_state *mrb = mrb_open(); char code[] = “p ‘hello world!'”; printf(“Executing Ruby code from C!\n”); mrb_load_string(mrb, code); return 0; } 并运行此命令: gcc example.c 我明显得到错误: engine.c:4:19: error: mruby.h: No such file or directory 我克隆了git repo并为include目录创建了一个符号链接,但我很确定我做错了。 我应该如何在我的代码中包含mruby,以便将它们全部编译在一起? 更新:这是我所拥有的目录结构,请注意mruby include目录的符号链接: $ tree -l […]

ncurses中的菜单分隔符

我想在带有分区分隔符的ncurses中构建一个菜单。 我的示例列表如下所示: Aardvark Apple Bee Cat Kitten Kalashnikov Waffle 我想要的是不可选择的分频器。 像这样的东西: (A) —- Aardvark Apple (B) —- Bee (C) —- Cat (K) —- Kitten Kalashnikov (W) —- Waffle 有没有内置的方法来做到这一点? 更具体地说,我正在使用这个ruby gem: https : //github.com/eclubb/ncurses-ruby我更喜欢一个通用的答案,但如果它可以用Ruby真棒解决,那也很酷。

一种语言是否通常将undefined评估为等于false? 如果是这样,为什么这样做?

更新:问题仍未得到答复。 @Alastair_Pitts:除非我遗漏了什么,否则这是一个两部分问题。 第二部分,“如果是这样,为什么要这样做?” 并没有得到回答。 相信问题很清楚,但如果您有任何问题 – 请告诉我。 谢谢! undefined = unknown ,是基于三元逻辑的系统引用。 参考: http : //en.wikipedia.org/wiki/Ternary_logic

Id2sym&symbol.object_id

使用ruby-hacking-guide网站 ,我发现fixnum << 8 | 1 fixnum << 8 | 1是任何fixnum的object_id。 我尝试过使用符号的类似方法。 #define ID2SYM(x) ((VALUE)(((long)(x))<<8|SYMBOL_FLAG)) 当向左移8位时, x变为256的倍数,这意味着4的倍数。然后按位或(在这种情况下,它与添加相同)与0×0e (十进制14) 我尝试过:a ( :a.object_id = 175_976,在我的32位系统上): a的ASCII码是97。 97 << 8 = 24832 24832 | 14 = 24_846 所以它甚至不接近:a对象id。 我检查了object_id来源,发现了这个: * sizeof(RVALUE) is * 20 if 32-bit, double is 4-byte aligned * 24 if 32-bit, double is 8-byte aligned […]

如何处理ruby ffi gem中的ruby数组?

我想使用ruby ffi gem来调用ac函数,它有一个数组作为输入变量,输出是一个数组。 也就是说,c函数看起来像: double *my_function(double array[], int size) 我创建了ruby绑定: module MyModule extend FFI::Library ffi_lib ‘c’ ffi_lib ‘my_c_lib’ attach_function :my_function, [:pointer, int], :pointer 我想用ruby代码打电话,如: result_array = MyModule.my_function([4, 6, 4], 3) 我该怎么做?

如何向extconf.rb添加C ++编译器标志

我正在编写Ruby扩展,我有一个标准的mkmf配置脚本,但我需要在所有C ++编译步骤中添加一个特殊的include标志( –std=c++0x )。 我不希望它在C编译步骤中,因为它会抛出警告。 我该怎么做? require ‘mkmf’ create_makefile(‘thing’) 例如,我尝试了$CXXFLAGS << '-I..' I $CXXFLAGS << '-I..' ,但CXXFLAGS尚未定义。 如果我使用$CXXFLAGS = ‘-I..’ I $CXXFLAGS = ‘-I..’ ,它稍后会被覆盖。

运行时动态绑定和类inheritance之间的区别

我试图澄清动态语言(Python,ruby)和静态类型语言(java,C ++)中的运行时动态绑定和类inheritance的概念。 我不确定我是对的。 在Python和Ruby等动态语言中,运行时动态绑定实现为duck typing。 当解释器检查对象的类型时,它会检查对象是否具有特定的方法(或行为),而不是检查对象的类型; 和运行时动态绑定并不意味着类inheritance。 类inheritance只是减少Python和Ruby中的代码副本。 在Java和C ++等静态类型语言中,运行时动态绑定只能获得类inheritance。 类inheritance不仅减少了代码副本,还用于实现运行时动态绑定。 总之,类inheritance和运行时动态绑定是两个不同的概念。 在Python和Ruby中,它们完全不同; 在Java和C ++中,它们混合在一起。 我对吗?