我最近问了一个关于在 C++ 应用程序中嵌入 ruby 的问题
Embedding ruby in c++, problem with ruby libraries
现在我遇到了另一个与此相关的问题。我设法编译并运行了这个应用程序,但我无法静态链接 ruby。这是我的控制台所说的:
####:~/Desktop/rubyParser$ g++ -o ruby_test ruby_test.c -I/usr/lib/ruby/1.8/x86_64-linux/ -static -lruby1.8
/usr/bin/ld: cannot find -lruby1.8
但是如果我打开/usr/bin,就会有一个“ruby1.8”文件(没有扩展名)。可能我需要另一个文件.. 我使用的是 Ubuntu,当然我不是 Linux 专家,所以请耐心等待我:)
我该如何解决?
提前致谢
再见
最佳答案
通过指定 -lruby1.8
,链接器将在标准库位置(可能是 /usr/lib)中查找名为
或 libruby1.8.so
的文件//usr/local/lib
).
看看这些目录,看看里面是否有类似的东西。
如果没有,你有没有安装ruby的development包?如果只有链接过程失败,我会假设您有(否则,您很可能也没有 header )。
我从未与 ruby 链接过,但您是否尝试过指定 -lruby
而不是 -lruby1.8
?
关于c++ - 将 ruby 库静态链接到 C++ 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6124352/