我在 c 中创建了一些我想从 ruby 调用的代码。我已将这篇文章用作指南,但在没有链接问题的情况下运行它时遇到了问题。
首先,我必须直接将源文件复制到我的ext/NAME/
目录中。如果我将它们 git submodule 放入该目录,它们似乎不会被拾取,这意味着它们将位于某个子目录下,例如ext/NAME/CLIB_GIT_SUBMODULE_FILES/
.
接下来,似乎我必须运行我的 c 项目 makefile,否则我会遇到段错误。如果我运行我的 makefile,目标文件.o
(ext/NAME
/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 库。我尝试查看其他项目以获取指导,例如nokogiri,但他们正在做更多,这使得很难筛选。
任何帮助深表感谢!