gpt4 book ai didi

ruby - extconf.rb 如何定义要使用的源文件

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:26 25 4
gpt4 key购买 nike

我有一个像这样组织的 ruby​​ 扩展的小项目:

./
Rakefile
ext/
mymodule/
extconf.rb
mymodule.rb
mymodule.cpp
source1.h
source1.cpp
source2.h
source2.cpp

一切正常,但我需要将一些源文件放在一个目录中(我在 git 存储库中创建/修改/测试所有这些源文件,以便在测试我的 C++ 代码时只需要更新此目录)。所以新组织看起来像这样:

./
Rakefile
ext/
mymodule/
extconf.rb
mymodule.rb
mymodule.cpp
somesourcesfiles/
source1.h
source1.cpp
source2.h
source2.cpp

我现在的问题是如何指定 extconf.rb 在哪里可以找到源文件(extconf.rb 默认使用当前目录中的源文件)。

我已经在 extconf.rb 中测试了这个但没有成功:

myfiles = %w{somesourcefiles/source1 somesourcefiles/source2 mymodule}
$srcs = myfiles.map{|i| i + ".cpp"}

我有一条错误消息说链接器找不到一些“.o”文件所以我添加了这个:

myfiles = %w{somesourcefiles/source1 somesourcefiles/source2 mymodule}
$srcs = myfiles.map{|i| i + ".cpp"}
$objs = myfiles.map{|i| i + ".o"}

但这没有用。

最佳答案

参见 mkmf ignores files in sub-folders when it compiles the C extension

$INCFLAGS << " -I$(srcdir)/somesourcesfiles"
$VPATH << "$(srcdir)/somesourcesfiles"

关于ruby - extconf.rb 如何定义要使用的源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com