我试图编译一个包含MRuby库的Contiki应用程序,并执行一些简单的ruby代码问题是,我不知道如何在编译中包含MRuby库。
这个项目:https://github.com/matus-tomlein/contiki-mruby-example/tree/wrong
我要执行的代码在contiki-mruby-example.c中问题可能出在Makefile中这就是我目前所拥有的:

CONTIKI_PROJECT = contiki-mruby-example
all: $(CONTIKI_PROJECT)

CONTIKIDIRS += mruby/include

CFLAGS += -v
CFLAGS += -Imruby/include

CONTIKI = contiki
include $(CONTIKI)/Makefile.include

当我执行make时出现以下错误:
ld: can't map file, errno=22 file 'mruby/include' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我要包含的MRuby代码在mruby/include中。
这是一个类似的问题:How to use external libraries and compile them along with a Contiki application
但是使用TARGET_LIBFILESLDFLAGS没有帮助我想那是因为我编译的是纯源代码,而不是库。
也许我遗漏了一个简单的答案谢谢你的建议。

最佳答案

感谢@kfx的评论,你说的对,我应该把库链接到Makefile中。
只是为了帮助其他可能有这个问题的人:
转到mruby子文件夹并执行make
将此添加到生成文件:TARGET_LIBFILES += mruby/build/host/lib/libmruby.a
我已经更新了示例repo的修复:https://github.com/matus-tomlein/contiki-mruby-example

关于c - 用MRuby编译Contiki应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28151814/

10-11 16:49