【发布时间】:2016-10-30 03:57:33
【问题描述】:
我在 c 中创建了一些我想从 ruby 调用的代码。我以this article 为指导,但我无法让它在没有链接问题的情况下运行。
首先,我必须将源文件直接复制到我的ext/NAME/ 目录中。如果我将它们 git submodule 放入该目录,它们似乎不会被拾取,这意味着它们将位于诸如 ext/NAME/CLIB_GIT_SUBMODULE_FILES/ 之类的子目录下。
接下来,我似乎必须运行我的 c 项目 makefile,否则我会遇到段错误。如果我运行我的 makefile,目标文件 (.o) 会在 ext/NAME 目录中创建,现在当我尝试运行 rake(它在 /test/ 下运行我的测试用例时,我会看到以下链接问题:
linking shared-object NAME/NAME.so
gcc: error: SOMEFILE_ONE.o: No such file or directory
gcc: error: SOMEFILE_TWO.o: No such file or directory
gcc: error: SOMEFILE_THREE.o: No such file or directory
make: *** [ruby_fast_numerizer.so] Error 1
rake aborted!
请注意,当我在 ext/NAME/ 下运行 makefile 时,它会创建 SOMEFILE_ONE.o 等。
我不确定此时发生了什么 :( 指南似乎都在 ext/NAME 目录中编写新的 c 代码,而不是包装现有的 c 库。我尝试查看其他项目以获取指导,例如 @ 987654322@,但他们做得更多,因此很难筛选。
非常感谢任何帮助!
【问题讨论】:
标签: ruby ruby-native-extensions