Ошибка компиляции luci:iwinfo.h: нет такого файла или каталога

Я скачал транк luci из git https://github.com/openwrt/luci.git и получил следующую ошибку при компиляции на CentOS.

Я уже установил пакет iw, но все еще получил ошибку.

   Package iw-3.10-4.el7.x86_64 already installed and latest version

Как я могу исправить эту проблему?

make[1]: Entering directory `/home/mullex/Dev/Projects/openwrt-luci/modules/admin-full'
rm -f src/*.o src/luci-bwc
gcc  -O2 --std=gnu99 -Wall -pedantic    -fPIC -c -o src/luci-bwc.o src/luci-bwc.c
src/luci-bwc.c:35:20: fatal error: iwinfo.h: No such file or directory
#include <iwinfo.h>
                ^
compilation terminated.
make[1]: *** [src/luci-bwc.o] Error 1
make[1]: Leaving directory `/home/mullex/Dev/Projects/openwrt-luci/modules/admin-full'
*** Compilation of modules/admin-full failed!
make: *** [gccbuild] Error 1

1 ответ

Решение

Сегодня утром я столкнулся с той же проблемой, когда запускал MakeCile LuCI в Ubuntu, чтобы LuCI был запущен и запущен на моем ПК в целях разработки без необходимости подключения к маршрутизатору. Я решил это следующим образом:

На этой веб-странице...

http://luci.subsignal.org/trac/changeset/10377

... есть описание строк, которые были добавлены в два файла для реализации функций, требующих включения файла iwinfo.h. Я уже установил iw (с помощью команды "sudo apt-get install iw"), но мне показалось, что это не iwinfo.h, который, как я понимаю, является файлом, который можно установить только в OpenWRT. Поэтому, чтобы решить эту проблему, я вручную вернул два файла в исходное состояние, удалив зеленые линии и добавив красные линии. Под зелеными линиями и красными линиями я подразумеваю те, которые выделены в выводе Diff файлов, представленных на приведенной выше веб-странице. Следовательно, я получил две исправленные (откатные) версии следующих двух файлов:

contrib / package / luci / Makefile и модули / admin-full / src / luci-bwc.c

Затем я снова запустил Make-файл LuCI верхнего уровня, используя следующую команду, находясь в каталоге верхнего уровня:

sudo make runuhttpd

Makefile завершился без ошибок, и его последним шагом было запустить веб-сервер по адресу localhost:8080/luci/

В этот момент в окне терминала процесс ожидает (то есть не возвращается в командную строку), поскольку он работает на веб-сервере. В моем веб-браузере по адресу localhost:8080/luci/ я теперь успешно вижу страницу индекса по умолчанию. Если я ввожу CTRL-C в окне терминала, чтобы завершить процесс, веб-сервер останавливается, и страница индекса по умолчанию больше не отображается в веб-браузере.

Чтобы снова запустить веб-сервер, в терминале я ввожу последнюю команду, которая была выполнена Makefile:

[my-top-level-LUCI-каталог установки]/host/usr/sbin/uhttpd -p 8080 -h [my-top-level-LUCI-каталог установки]/host/www -f

Надеюсь это поможет.

Другие вопросы по тегам