Скомпилируйте приложение Contiki с помощью MRuby

Я пытаюсь скомпилировать приложение Contiki, которое включает библиотеки MRuby и выполняет простой код 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.

Это аналогичный вопрос: Как использовать внешние библиотеки и компилировать их вместе с приложением Contiki Но использование TARGET_LIBFILES или LDFLAGS не помогло. Я предполагаю, что это потому, что я компилирую простой исходный код, а не библиотеки.

Вероятно, есть простой ответ, который мне не хватает. Спасибо за любые предложения.


person matus.tomlein    schedule 26.01.2015    source источник
comment
Вам действительно нужно компилировать библиотеки? Обычно я предполагаю, что библиотеки связаны с. Если вы хотите связать, добавьте библиотеки в файл Makefile. Если вы хотите скомпилировать, добавьте исходные пути в CONTIKIDIRS и список файлов .c в PROJECT_SOURCEFILES.   -  person kfx    schedule 26.01.2015


Ответы (1)


Спасибо @kfx за комментарий, вы были правы, что я должен был связать библиотеку в Makefile.

Просто, чтобы помочь всем, у кого может быть эта проблема:

  1. Перейдите в подпапку mruby и выполните make
  2. Добавьте это в Makefile: TARGET_LIBFILES += mruby/build/host/lib/libmruby.a

Я обновил репозиторий примеров с исправлением: https://github.com/matus-tomlein/contiki-mruby-example

person matus.tomlein    schedule 26.01.2015