将Ruby解释器链接到C程序
我试图在C程序中包含Ruby解释器。我一直在使用此链接作为指南: 我有以下C代码:将Ruby解释器链接到C程序,c,ruby,api,interpreter,C,Ruby,Api,Interpreter,我试图在C程序中包含Ruby解释器。我一直在使用此链接作为指南: 我有以下C代码: #包括 int main(int argc,char*argv[]) { /*构建虚拟机*/ ruby_init(); //“你好” /*鲁比在这里*/ /*破坏虚拟机*/ 返回ruby_清理(0); } 问题是,当我尝试编译代码时,我得到以下消息: 对ruby_init的引用未定义 参考ruby\u cleanup未定义您需要链接到libruby,如链接中所述: 嵌入Ruby需要一个头Ruby.h,其中包括一
#包括
int main(int argc,char*argv[])
{
/*构建虚拟机*/
ruby_init();
//“你好”
/*鲁比在这里*/
/*破坏虚拟机*/
返回ruby_清理(0);
}
问题是,当我尝试编译代码时,我得到以下消息:
对ruby_init的引用未定义
参考ruby\u cleanup未定义您需要链接到
libruby
,如链接中所述:
嵌入Ruby需要一个头Ruby.h
,其中包括一个特定于平台的头Ruby/config.h
。您可能需要告诉编译器这些头的包含路径。您还需要链接Ruby库。在我的机器上,我的最小编译器选项是
$ gcc -I/usr/include/ruby-2.5.0 -I/usr/include/ruby-2.5.0/x86_64-linux -lruby
但是,如果可用,您应该真正使用pkg config为您的发行版获取适当的选项:
$ pkg-config --cflags --libs ruby-2.5
将这两者结合起来,您会得到
gcc$(pkg config--cflags--libs ruby-2.5)
JL2210我尝试过这样做,但我得到以下消息:在pkg config搜索路径中找不到包ruby-2.5。也许您应该将包含“ruby-2.5.pc”的目录添加到PKG_CONFIG_PATH环境中variable@ErickPro您安装了什么版本的Ruby?你有安装开发包吗?我有ruby 2.5.5,我是用rvm安装的,但是我怎么知道我有没有开发包?对不起,我是Linux新手。