静态地将ruby库链接到c++应用程序
Statically link ruby libraries to c++ application
我最近问了一个关于在c++应用程序中嵌入ruby的问题
在c++中嵌入ruby,ruby库的问题
现在我遇到了另一个与此相关的问题。我设法编译并运行了这个应用程序,但我无法静态链接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/
或/usr/local/lib
)中查找名为libruby1.8.so
的文件。
看看那些目录,看看里面是否有类似的东西。
如果没有,您是否安装了ruby的开发包?如果只有链接过程失败,我认为你已经失败了(否则,你很可能也没有标题)。
我从未链接过ruby,但您是否尝试过指定-lruby
而不是-lruby1.8
?
您是否尝试将二进制文件添加到PATH中?
如果您最近安装了有问题的Ruby库,您可能需要转到命令行并键入sudo ldconfig
,以使用库的最新版本及其位置刷新ld
的配置文件。
编辑:从下面的评论中,如果你遇到运行时链接问题,你只需要完成这一步,而目前还没有。但这至少是需要记住的,因为它在过去为我解决了运行时链接问题(即,帮助我使用GMP)。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 如果整个应用程序是虚拟映射的,为什么 new 会进行系统调用?